[all-commits] [llvm/llvm-project] eaef64: [test] Update stack_guard_remat.ll

Congcong Cai via All-commits all-commits at lists.llvm.org
Tue Jan 30 19:21:47 PST 2024


  Branch: refs/heads/users/ccc/fix/disable-feature-not-work-for-wasm
  Home:   https://github.com/llvm/llvm-project
  Commit: eaef645a5836df56b53800383022a3a384305c6b
      https://github.com/llvm/llvm-project/commit/eaef645a5836df56b53800383022a3a384305c6b
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-01-22 (Mon, 22 Jan 2024)

  Changed paths:
    M llvm/test/CodeGen/Thumb/stack_guard_remat.ll

  Log Message:
  -----------
  [test] Update stack_guard_remat.ll


  Commit: fe0ec2c91cfbf2aad2a61e402f21b771db685b90
      https://github.com/llvm/llvm-project/commit/fe0ec2c91cfbf2aad2a61e402f21b771db685b90
  Author: NAKAMURA Takumi <geek4civic at gmail.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h
    M llvm/lib/ProfileData/Coverage/CoverageMapping.cpp

  Log Message:
  -----------
  [Coverage] Const-ize `MCDCRecordProcessor` stuff (#78918)

The life of `MCDCRecordProcessor`'s instance is short. It may accept
`const` objects to process.

On the other hand, the life of `MCDCBranches` is shorter than `Record`.
It may be rewritten with reference, rather than copying.


  Commit: 672fb5892eb1dd977fd36149fd45d794103b0408
      https://github.com/llvm/llvm-project/commit/672fb5892eb1dd977fd36149fd45d794103b0408
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-01-22 (Mon, 22 Jan 2024)

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

  Log Message:
  -----------
  [RISCV] Remove extra semicolons. NFC


  Commit: 1000cefc049e313a532fc9df2a48d80826fc80c7
      https://github.com/llvm/llvm-project/commit/1000cefc049e313a532fc9df2a48d80826fc80c7
  Author: Stanislav Mekhanoshin <rampitec at users.noreply.github.com>
  Date:   2024-01-22 (Mon, 22 Jan 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/GCNSubtarget.h
    M llvm/lib/Target/AMDGPU/SOPInstructions.td
    M llvm/test/MC/AMDGPU/gfx12_asm_sopp.s
    M llvm/test/MC/AMDGPU/gfx12_unsupported.s
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_sopp.txt

  Log Message:
  -----------
  [AMDGPU] Remove s_set_inst_prefetch_distance support from GFX12 (#78786)

This instruction is not supported by GFX12.


  Commit: 424b9cf41abf376cc7a34640f5f451c91714f77b
      https://github.com/llvm/llvm-project/commit/424b9cf41abf376cc7a34640f5f451c91714f77b
  Author: Alan Phipps <a-phipps at ti.com>
  Date:   2024-01-22 (Mon, 22 Jan 2024)

  Changed paths:
    M clang/lib/CodeGen/CGExprScalar.cpp
    A clang/test/Profile/c-mcdc-logicalop-ternary.c

  Log Message:
  -----------
  [Coverage][clang] Ensure bitmap for ternary condition is updated before visiting children (#78814)

This is a fix for MC/DC issue https://github.com/llvm/llvm-project/issues/78453 in which a ConditionalOperator that evaluates a complex condition was incorrectly updating its global bitmap after visiting its LHS and RHS children. This
was wrong because if the LHS or RHS also evaluate a complex condition, the MCDC temporary bitmap value will get corrupted. The fix is to ensure that the bitmap is updated prior to visiting the LHS and RHS.


  Commit: b83b8d3fd17885438b0ea154e07088d877d293a8
      https://github.com/llvm/llvm-project/commit/b83b8d3fd17885438b0ea154e07088d877d293a8
  Author: Amir Ayupov <aaupov at fb.com>
  Date:   2024-01-22 (Mon, 22 Jan 2024)

  Changed paths:
    M clang/CMakeLists.txt
    M clang/cmake/caches/BOLT.cmake
    M clang/utils/perf-training/CMakeLists.txt
    M clang/utils/perf-training/bolt.lit.cfg
    M clang/utils/perf-training/bolt.lit.site.cfg.in
    M clang/utils/perf-training/perf-helper.py

  Log Message:
  -----------
  Reland [Clang][CMake] Support perf, LBR, and Instrument CLANG_BOLT options (#69133)

This reverts commit 6c47419703acfcd7dcca9e30ab9dba6a7a42f977.

Default to CLANG_BOLT=OFF

Test Plan:
Build a regular Clang build.


  Commit: 1d5c16d7805806e920feee2b4ec93d5800293837
      https://github.com/llvm/llvm-project/commit/1d5c16d7805806e920feee2b4ec93d5800293837
  Author: Nick Desaulniers <nickdesaulniers at users.noreply.github.com>
  Date:   2024-01-22 (Mon, 22 Jan 2024)

  Changed paths:
    M libc/cmake/modules/CheckCompilerFeatures.cmake
    M libc/cmake/modules/LLVMLibCObjectRules.cmake
    M utils/bazel/llvm-project-overlay/libc/libc_build_rules.bzl

  Log Message:
  -----------
  [libc] default enable -ftrivial-auto-var-init=pattern (#78776)

Usage of uninitialized memory is a top memory safety issue in C++ codebases.
Help mitigate this somewhat by default initialize stack allocations to a
pattern (0xAA repeating).

Clang has received optimizations to sink these into control flow paths that
access such values to minimize the overhead of these added initializations.

If there's a measurable slowdown, we can add
-ftrivial-auto-var-init-max-size=<N> for some value N bytes if we have any
large stack allocations, or add attribute uninitialized to any variable
declarations.

Unsupported until GCC 12.1 / Clang 8.

Increases file size of libc.a from a full build by +8.79Ki (+0.2%).


  Commit: 6953b367027e4234607a6718a0a1d57eb52ef57e
      https://github.com/llvm/llvm-project/commit/6953b367027e4234607a6718a0a1d57eb52ef57e
  Author: Amir Ayupov <aaupov at fb.com>
  Date:   2024-01-22 (Mon, 22 Jan 2024)

  Changed paths:
    M clang/CMakeLists.txt
    M clang/cmake/caches/BOLT.cmake
    M clang/utils/perf-training/CMakeLists.txt
    M clang/utils/perf-training/bolt.lit.cfg
    M clang/utils/perf-training/bolt.lit.site.cfg.in
    M clang/utils/perf-training/perf-helper.py

  Log Message:
  -----------
  Revert "Reland [Clang][CMake] Support perf, LBR, and Instrument CLANG_BOLT options (#69133)"

This reverts commit b83b8d3fd17885438b0ea154e07088d877d293a8.

Breaks buildbots e.g.
https://lab.llvm.org/buildbot/#/builders/225/builds/29950


  Commit: 042bb2850dcdd0b8a519f51678f2e40d0a97f548
      https://github.com/llvm/llvm-project/commit/042bb2850dcdd0b8a519f51678f2e40d0a97f548
  Author: Dimitry Andric <dimitry at andric.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M compiler-rt/lib/tsan/rtl/tsan_platform_linux.cpp

  Log Message:
  -----------
  [tsan] Fix build for FreeBSD and NetBSD after 0784b1eefa36 (#79019)

In 0784b1eefa36 some code for re-execution was moved to
`ReExecIfNeeded()`, but also extended with a few Linux-only features.
This leads to compile errors on FreeBSD, or other non-Linux platforms:

compiler-rt/lib/tsan/rtl/tsan_platform_linux.cpp:247:25: error: use of
undeclared identifier 'personality'
      247 |   int old_personality = personality(0xffffffff);
          |                         ^
compiler-rt/lib/tsan/rtl/tsan_platform_linux.cpp:249:54: error: use of
undeclared identifier 'ADDR_NO_RANDOMIZE'
249 | (old_personality != -1) && ((old_personality & ADDR_NO_RANDOMIZE)
== 0);
          |                                                      ^
compiler-rt/lib/tsan/rtl/tsan_platform_linux.cpp:281:46: error: use of
undeclared identifier 'ADDR_NO_RANDOMIZE'
281 | CHECK_NE(personality(old_personality | ADDR_NO_RANDOMIZE), -1);
          |                                              ^

Surround the affected part with a `#if SANITIZER_LINUX` block for now.


  Commit: be0c8098364b4bc9b210db65f5799bf37aefb605
      https://github.com/llvm/llvm-project/commit/be0c8098364b4bc9b210db65f5799bf37aefb605
  Author: Jeremy Morse <jeremy.morse at sony.com>
  Date:   2024-01-22 (Mon, 22 Jan 2024)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp

  Log Message:
  -----------
  [NFC][Debuginfo][RemoveDIs] Switch an insertion to use iterators

With the soon-to-land new-debug-info storage model, it's going to be
important to use iterators for instruction insertion rather than
instruction pointers. This (single line in instcombine) is the last place
that trips up our internal testing for debug-info, where we insert a PHI
and it should be using an iterator.


  Commit: d37d1c8deaa34216248ad51e549a701852e29fa3
      https://github.com/llvm/llvm-project/commit/d37d1c8deaa34216248ad51e549a701852e29fa3
  Author: Tom Eccles <tom.eccles at arm.com>
  Date:   2024-01-22 (Mon, 22 Jan 2024)

  Changed paths:
    M clang/include/clang/Basic/DiagnosticDriverKinds.td
    M clang/lib/Driver/ToolChains/CommonArgs.cpp
    M flang/test/Driver/linker-flags.f90

  Log Message:
  -----------
  [flang][driver] deprecate manual usage of -lFortran_main (#79016)

Intended to warn users of the 18.x release not to do this.

A better solution should be found for the 19.x release. See discussion
in https://github.com/llvm/llvm-project/pull/78152.

Unfortunately there is no warning on Windows currently. I am rushing to
get this landed before 18.x branches.


  Commit: ee0b4d9681047f77d1f7bf53dc185fe140700464
      https://github.com/llvm/llvm-project/commit/ee0b4d9681047f77d1f7bf53dc185fe140700464
  Author: Félix-Antoine Constantin <60141446+felix642 at users.noreply.github.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M clang-tools-extra/clang-tidy/google/IntegerTypesCheck.cpp
    M clang-tools-extra/docs/ReleaseNotes.rst
    M clang-tools-extra/test/clang-tidy/checkers/google/runtime-int.cpp

  Log Message:
  -----------
  [clang-tidy] Ignore user-defined literals in google-runtime-int (#78859)

User-defined literals do not accept u?intXX(_t)? variables. So the check
should not emit a warning.

Fixes #54546 #25214


  Commit: 50e2581a199da9702841f103eefca8dca2fc7b4f
      https://github.com/llvm/llvm-project/commit/50e2581a199da9702841f103eefca8dca2fc7b4f
  Author: Tom Eccles <tom.eccles at arm.com>
  Date:   2024-01-22 (Mon, 22 Jan 2024)

  Changed paths:
    M flang/docs/Directives.md
    M flang/include/flang/Common/Fortran.h
    M flang/lib/Semantics/check-call.cpp
    M flang/lib/Semantics/check-declarations.cpp
    M flang/test/Semantics/ignore_tkr01.f90
    A flang/test/Semantics/ignore_tkr03.f90

  Log Message:
  -----------
  [flang] Allow assumed-shape element pass to dummy arg with ignore_tkr (#78196)

This is allowed by gfortran and ifort with `![GCC|DEC]$ ATTRIBUTES
NO_ARG_CHECK`


  Commit: ff9627348e89b9e1a56714448f33dd42cf847777
      https://github.com/llvm/llvm-project/commit/ff9627348e89b9e1a56714448f33dd42cf847777
  Author: Jeremy Morse <jeremy.morse at sony.com>
  Date:   2024-01-22 (Mon, 22 Jan 2024)

  Changed paths:
    M llvm/tools/llc/llc.cpp
    M llvm/tools/opt/opt.cpp

  Log Message:
  -----------
  [NFC][DebugInfo] Set a testing flag to be hidden

This flag (--try-experimental-debuginfo-iterators) only exists for testing
purposes, to get some RUNlines running in new-debug-info mode before it's
properly supported. The flag isn't something that's going to be useful to
people using llvm 18, so hide it from the options list.


  Commit: 3ab8d2aac7bc2dd45dda3db0b8a71fd27eefb749
      https://github.com/llvm/llvm-project/commit/3ab8d2aac7bc2dd45dda3db0b8a71fd27eefb749
  Author: Dinar Temirbulatov <Dinar.Temirbulatov at arm.com>
  Date:   2024-01-22 (Mon, 22 Jan 2024)

  Changed paths:
    M compiler-rt/cmake/builtin-config-ix.cmake
    M compiler-rt/lib/builtins/CMakeLists.txt
    A compiler-rt/lib/builtins/aarch64/sme-libc-routines.c
    A compiler-rt/test/builtins/Unit/sme-string-test.cpp
    M compiler-rt/test/lit.common.cfg.py
    M compiler-rt/test/lit.common.configured.in
    M compiler-rt/unittests/lit.common.unit.configured.in

  Log Message:
  -----------
  [AArch64][compiler-rt] Add memcpy, memset, memmove, memchr builtins. (#77496)

Add naive implementation of memcpy, memset, memmove, memchr for SME
targets.
Co-authored-by: David Sherwood <david.sherwood at arm.com>


  Commit: d922c82447e51921ee0545c398f60eb3a6ee24a3
      https://github.com/llvm/llvm-project/commit/d922c82447e51921ee0545c398f60eb3a6ee24a3
  Author: Anlun Xu <anlunx at google.com>
  Date:   2024-01-22 (Mon, 22 Jan 2024)

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

  Log Message:
  -----------
  [Blaze] Fix build file


  Commit: a2d68b4bece54bcfa7bfde1e80058ab19b6d1775
      https://github.com/llvm/llvm-project/commit/a2d68b4bece54bcfa7bfde1e80058ab19b6d1775
  Author: David Green <david.green at arm.com>
  Date:   2024-01-22 (Mon, 22 Jan 2024)

  Changed paths:
    M llvm/include/llvm/Analysis/TargetTransformInfo.h
    M llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
    M llvm/lib/Analysis/TargetTransformInfo.cpp
    M llvm/lib/CodeGen/SelectOptimize.cpp
    M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
    M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h
    M llvm/test/CodeGen/AArch64/selectopt.ll

  Log Message:
  -----------
  [SelectOpt] Add handling for Select-like operations. (#77284)

Some operations behave like selects. For example `or(zext(c), y)` is the
same as select(c, y|1, y)` and instcombine can canonicalize the select
to the or form. These operations can still be worthwhile converting to
branch as opposed to keeping as a select or or instruction.

This patch attempts to add some basic handling for them, creating a
SelectLike abstraction in the select optimization pass. The backend can
opt into handling `or(zext(c),x)` as a select if it could be profitable,
and the select optimization pass attempts to handle them in much the
same way as a `select(c, x|1, x)`. The Or(x, 1) may need to be added as
a new instruction, generated as the or is converted to branches.

This helps fix a regression from selects being converted to or's
recently.


  Commit: 7117a4e8409018f31c00b186ac4627586d839e59
      https://github.com/llvm/llvm-project/commit/7117a4e8409018f31c00b186ac4627586d839e59
  Author: Arthur Eubanks <aeubanks at google.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/include/llvm/Bitcode/BitcodeWriterPass.h
    M llvm/lib/Bitcode/Writer/BitcodeWriterPass.cpp

  Log Message:
  -----------
  [BitcodeWriter] Remove ThinLTO-specific bits from legacy pass

Since we shouldn't be doing any LTO logic from the legacy pass manager.


  Commit: 029bfd6329aee0b60761998986dadba38e1de6f3
      https://github.com/llvm/llvm-project/commit/029bfd6329aee0b60761998986dadba38e1de6f3
  Author: lntue <35648136+lntue at users.noreply.github.com>
  Date:   2024-01-22 (Mon, 22 Jan 2024)

  Changed paths:
    M libc/cmake/modules/CheckCompilerFeatures.cmake
    M libc/cmake/modules/LLVMLibCTestRules.cmake
    M libc/test/UnitTest/HermeticTestUtils.cpp

  Log Message:
  -----------
  [libc] Replace -nostdlib++ flag when building with gcc and add placement new operator to HermeticTestUtils.cpp. (#78906)

`-nostdlib++` is a clang-only flag. Replacing it with `-nostdlib` when
building with gcc.


  Commit: 58cfd56356ed96690150245ca5bcf646d12edc7a
      https://github.com/llvm/llvm-project/commit/58cfd56356ed96690150245ca5bcf646d12edc7a
  Author: Simeon K <5235180+simeonkr at users.noreply.github.com>
  Date:   2024-01-22 (Mon, 22 Jan 2024)

  Changed paths:
    M llvm/docs/LangRef.rst
    M llvm/include/llvm/IR/Intrinsics.td
    M llvm/include/llvm/IR/VPIntrinsics.def
    M llvm/lib/CodeGen/ExpandVectorPredication.cpp
    M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    A llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fmaximum-vp.ll
    A llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fminimum-vp.ll
    A llvm/test/CodeGen/RISCV/rvv/fmaximum-vp.ll
    A llvm/test/CodeGen/RISCV/rvv/fminimum-vp.ll
    M llvm/unittests/IR/VPIntrinsicTest.cpp

  Log Message:
  -----------
  [VP][RISCV] Introduce llvm.vp.minimum/maximum intrinsics (#74840)

Although there are predicated versions of minnum/maxnum, the ones for
minimum/maximum are currently missing. This patch introduces these
intrinsics and implements their lowering to RISC-V.


  Commit: 907f2a0927d94d72d59f27e411c595b95aa673e9
      https://github.com/llvm/llvm-project/commit/907f2a0927d94d72d59f27e411c595b95aa673e9
  Author: Alex Voicu <alexandru.voicu at amd.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M clang/lib/Driver/ToolChains/AMDGPU.cpp
    M clang/test/Driver/hipstdpar.c

  Log Message:
  -----------
  [HIP][Driver] Automatically include `hipstdpar` forwarding header (#78915)

The forwarding header used by `hipstdpar` on AMDGPU targets is now
pacakged with `rocThrust`. This change augments the ROCm Driver
component so that it can automatically pick up the packaged header iff
the user hasn't overridden it via the dedicated flag.


  Commit: fcff4582f01db2f5a99e3acf452aec9f2d8a126a
      https://github.com/llvm/llvm-project/commit/fcff4582f01db2f5a99e3acf452aec9f2d8a126a
  Author: wanglei <wanglei at loongson.cn>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/lib/Target/LoongArch/LoongArch.td
    M llvm/lib/Target/LoongArch/LoongArchSubtarget.h
    M llvm/lib/Target/LoongArch/LoongArchTargetTransformInfo.cpp
    M llvm/lib/Target/LoongArch/LoongArchTargetTransformInfo.h
    A llvm/test/Transforms/LoopVectorize/LoongArch/defaults.ll
    A llvm/test/Transforms/LoopVectorize/LoongArch/lit.local.cfg

  Log Message:
  -----------
  [LoongArch] Permit auto-vectorization using LSX/LASX with `auto-vec` feature (#78943)

With enough codegen complete, we can now correctly report the size of
vector registers for LSX/LASX, allowing auto vectorization (The
`auto-vec` feature needs to be enabled simultaneously).

As described, the `auto-vec` feature is an experimental one. To ensure
that automatic vectorization is not enabled by default, because the
information provided by the current `TTI` cannot yield additional
benefits for automatic vectorization.


  Commit: ea75542db99136a4612d8624ecff8581128cac21
      https://github.com/llvm/llvm-project/commit/ea75542db99136a4612d8624ecff8581128cac21
  Author: Ben Shi <2283975856 at qq.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp
    M clang/test/Analysis/Inputs/system-header-simulator.h
    M clang/test/Analysis/stream-error.c
    M clang/test/Analysis/taint-tester.c

  Log Message:
  -----------
  [clang][analyzer] Support 'getdelim' and 'getline' in StreamChecker (#78693)


  Commit: 45c84f8011d2be9a2378487607ef811f75b4bfca
      https://github.com/llvm/llvm-project/commit/45c84f8011d2be9a2378487607ef811f75b4bfca
  Author: Jie Fu <jiefu at tencent.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp

  Log Message:
  -----------
  [clang][analyzer] Remove unused variable in StreamChecker.cpp (NFC)

llvm-project/clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp:1125:17:
 error: unused variable 'ASTC' [-Werror,-Wunused-variable]
 1125 |     ASTContext &ASTC = C.getASTContext();
      |                 ^~~~
1 error generated.


  Commit: 9a03d94a4db6b6d3b7cb1582e9e9cc239e737a30
      https://github.com/llvm/llvm-project/commit/9a03d94a4db6b6d3b7cb1582e9e9cc239e737a30
  Author: Nico Weber <thakis at chromium.org>
  Date:   2024-01-22 (Mon, 22 Jan 2024)

  Changed paths:
    M llvm/utils/gn/secondary/compiler-rt/test/BUILD.gn

  Log Message:
  -----------
  [gn] port 3ab8d2aac7bc

Might want to set this to True (and add a few source files to
builtins) at some point, but for now heal the bots.


  Commit: a0a16884ac678564787d3a939ad046b9b66bc3b9
      https://github.com/llvm/llvm-project/commit/a0a16884ac678564787d3a939ad046b9b66bc3b9
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-01-22 (Mon, 22 Jan 2024)

  Changed paths:
    M llvm/docs/LangRef.rst

  Log Message:
  -----------
  [Docs] Add anchors for llvm.minimum/maximum in LangRef.rst. NFC

This was missed in 58cfd56356ed96690150245ca5bcf646d12edc7a


  Commit: c0fe2b8963aad8ad247eeceffb8eb833ee63a0e7
      https://github.com/llvm/llvm-project/commit/c0fe2b8963aad8ad247eeceffb8eb833ee63a0e7
  Author: Mehdi Amini <joker.eph at gmail.com>
  Date:   2024-01-22 (Mon, 22 Jan 2024)

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

  Log Message:
  -----------
  Apply clang-tidy fixes for modernize-loop-convert in Transforms.cpp (NFC)


  Commit: 3af5ab21b8da9015a5e336eb711e696781defcc9
      https://github.com/llvm/llvm-project/commit/3af5ab21b8da9015a5e336eb711e696781defcc9
  Author: Mehdi Amini <joker.eph at gmail.com>
  Date:   2024-01-22 (Mon, 22 Jan 2024)

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

  Log Message:
  -----------
  Apply clang-tidy fixes for readability-identifier-naming in Transforms.cpp (NFC)


  Commit: 2e0909025ec010981f582d4e13b129e17329ee1b
      https://github.com/llvm/llvm-project/commit/2e0909025ec010981f582d4e13b129e17329ee1b
  Author: Mehdi Amini <joker.eph at gmail.com>
  Date:   2024-01-22 (Mon, 22 Jan 2024)

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

  Log Message:
  -----------
  Apply clang-tidy fixes for readability-simplify-boolean-expr in Vectorization.cpp (NFC)


  Commit: acf2f24ac3288c1342edbeaba0fdd4e432b4ccb8
      https://github.com/llvm/llvm-project/commit/acf2f24ac3288c1342edbeaba0fdd4e432b4ccb8
  Author: Mehdi Amini <joker.eph at gmail.com>
  Date:   2024-01-22 (Mon, 22 Jan 2024)

  Changed paths:
    M mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp

  Log Message:
  -----------
  Apply clang-tidy fixes for llvm-else-after-return in LLVMDialect.cpp (NFC)


  Commit: d4933b3241f463871cae55bbeec8563e7ffe03a2
      https://github.com/llvm/llvm-project/commit/d4933b3241f463871cae55bbeec8563e7ffe03a2
  Author: Mehdi Amini <joker.eph at gmail.com>
  Date:   2024-01-22 (Mon, 22 Jan 2024)

  Changed paths:
    M mlir/lib/Dialect/Math/Transforms/PolynomialApproximation.cpp

  Log Message:
  -----------
  Apply clang-tidy fixes for readability-identifier-naming in PolynomialApproximation.cpp (NFC)


  Commit: 4db4d7f282d17634966cdfda8ccecee1bfcfe1ff
      https://github.com/llvm/llvm-project/commit/4db4d7f282d17634966cdfda8ccecee1bfcfe1ff
  Author: Carl Ritson <carl.ritson at amd.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/SILowerSGPRSpills.cpp
    M llvm/test/CodeGen/AMDGPU/sgpr-spill-overlap-wwm-reserve.mir

  Log Message:
  -----------
  [AMDGPU] SILowerSGPRSpills: do not update MRI reserve registers (#77888)

VGPRs used for spilling do not require explicit reservation with MRI.
freezeReservedRegs() executed before register allocation ensures these
are placed in the reserve set.

The only pass after SILowerSGPRSpills is SIPreAllocateWWMRegs which
explicitly tests for interference before register allocation so should
not reuse a WWM VGPR holding spill data. reserveReg prevents calculation
of correct liveness for physical registers which could be used to extend
SIPreAllocateWWMRegs.


  Commit: b8e708b9d39862c2b7595c02e7bdc4878a2d7186
      https://github.com/llvm/llvm-project/commit/b8e708b9d39862c2b7595c02e7bdc4878a2d7186
  Author: Jim Lin <jim at andestech.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVMergeBaseOffset.cpp
    M llvm/test/CodeGen/RISCV/fold-addi-loadstore.ll

  Log Message:
  -----------
  [RISCV] Merge ADDI with X0 into base offset (#78940)

If offset is `addi rd, x0, imm`, merge imm into base offset.


  Commit: e5ca202ef8870f3b46cc19a7a62624e6908be9a8
      https://github.com/llvm/llvm-project/commit/e5ca202ef8870f3b46cc19a7a62624e6908be9a8
  Author: Stefan Gränitz <stefan.graenitz at gmail.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/include/llvm/ExecutionEngine/JITLink/aarch32.h
    M llvm/lib/ExecutionEngine/JITLink/aarch32.cpp
    A llvm/test/ExecutionEngine/JITLink/AArch32/ELF_stubs_arm.s
    A llvm/test/ExecutionEngine/JITLink/AArch32/ELF_stubs_multi.s
    M llvm/tools/llvm-jitlink/llvm-jitlink.cpp

  Log Message:
  -----------
  [JITLink][AArch32] Multi-stub support for armv7/thumbv7 (#78371)

We want to emit stubs that match the instruction set state of the
relocation site. This is important for branches that have no built-in
switch for the instruction set state. It's the case for Jump24
relocations. Relocations on instructions that support switching on
the fly will be rewritten in a relaxation step in the future. This
affects Call relocations on `BL`/`BLX` instructions.

In this patch, the StubManager gains a second stub symbol slot for each
target and selects which one to use based on the relocation type. For
testing, we select the appropriate slot with a stub-kind filter, i.e.
`arm` or `thumb`. With that we can implement Armv7 stubs and test
that we can have both kinds of stubs for a single external symbol.


  Commit: 8c680451a5eff02dd7e5004b69e05b3744f4e1aa
      https://github.com/llvm/llvm-project/commit/8c680451a5eff02dd7e5004b69e05b3744f4e1aa
  Author: itrofimow <i.trofimow at yandex.ru>
  Date:   2024-01-22 (Mon, 22 Jan 2024)

  Changed paths:
    M libcxx/src/support/runtime/exception_pointer_unimplemented.ipp

  Log Message:
  -----------
  [libc++] Fix linking for platforms that don't implement std::exception_ptr (#79040)

This patch fixes linkage for platforms that don't implement
std::exception_ptr, as such setup was overlooked in #65534.


  Commit: 6082478e1a5bde8ac03ac7220b733313a5417a13
      https://github.com/llvm/llvm-project/commit/6082478e1a5bde8ac03ac7220b733313a5417a13
  Author: Konstantin Varlamov <varconsteq at gmail.com>
  Date:   2024-01-22 (Mon, 22 Jan 2024)

  Changed paths:
    M libcxx/include/__config
    M libcxx/include/__coroutine/coroutine_handle.h
    M libcxx/include/__memory_resource/polymorphic_allocator.h
    M libcxx/src/filesystem/operations.cpp
    M libcxx/src/memory_resource.cpp
    M libcxx/src/mutex.cpp
    A libcxx/test/libcxx/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/assert.deallocate.pass.cpp
    R libcxx/test/libcxx/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/debug.deallocate.pass.cpp

  Log Message:
  -----------
  [libc++][hardening] Classify assertions related to leaks and syscalls. (#77164)

Introduce two new categories:
- `_LIBCPP_ASSERT_VALID_DEALLOCATION`;
- `_LIBCPP_ASSERT_VALID_EXTERNAL_API_CALL`.


  Commit: 37efa7038d30ea13f62ad919fec1e8c8ce35b3ef
      https://github.com/llvm/llvm-project/commit/37efa7038d30ea13f62ad919fec1e8c8ce35b3ef
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-01-22 (Mon, 22 Jan 2024)

  Changed paths:
    M lld/ELF/Driver.cpp
    M lld/test/ELF/x86-64-zrel-zrela.s

  Log Message:
  -----------
  [ELF] Fix spurious warning for -z rel && -z rela

Fixes: 665f913e4509e3e4f531aa4a4ebe92ec2ea5c23f


  Commit: bffd80d6df6195c8069b655b1f2463ad8622a707
      https://github.com/llvm/llvm-project/commit/bffd80d6df6195c8069b655b1f2463ad8622a707
  Author: Douglas Yung <douglas.yung at sony.com>
  Date:   2024-01-22 (Mon, 22 Jan 2024)

  Changed paths:
    M compiler-rt/cmake/builtin-config-ix.cmake
    M compiler-rt/lib/builtins/CMakeLists.txt
    R compiler-rt/lib/builtins/aarch64/sme-libc-routines.c
    R compiler-rt/test/builtins/Unit/sme-string-test.cpp
    M compiler-rt/test/lit.common.cfg.py
    M compiler-rt/test/lit.common.configured.in
    M compiler-rt/unittests/lit.common.unit.configured.in

  Log Message:
  -----------
  Revert "[AArch64][compiler-rt] Add memcpy, memset, memmove, memchr builtins. (#77496)"

This reverts commit 3ab8d2aac7bc2dd45dda3db0b8a71fd27eefb749.

This change is causing issues running lit tests on many bots including:
- https://lab.llvm.org/buildbot/#/builders/197/builds/12119
- https://lab.llvm.org/buildbot/#/builders/184/builds/9792
- https://lab.llvm.org/buildbot/#/builders/93/builds/18455
- https://lab.llvm.org/buildbot/#/builders/231/builds/19858
- https://lab.llvm.org/buildbot/#/builders/121/builds/38426
- https://lab.llvm.org/buildbot/#/builders/230/builds/23990
- https://lab.llvm.org/buildbot/#/builders/57/builds/32391
- https://lab.llvm.org/buildbot/#/builders/247/builds/13502
- https://lab.llvm.org/buildbot/#/builders/275/builds/3601
- https://lab.llvm.org/buildbot/#/builders/269/builds/4211
- https://lab.llvm.org/buildbot/#/builders/18/builds/14161
- https://lab.llvm.org/buildbot/#/builders/19/builds/23893
- https://lab.llvm.org/buildbot/#/builders/37/builds/30295
- https://lab.llvm.org/buildbot/#/builders/77/builds/33979


  Commit: 5c68c6d70fc204b0efdb2af95dfb328d616129e3
      https://github.com/llvm/llvm-project/commit/5c68c6d70fc204b0efdb2af95dfb328d616129e3
  Author: Shengchen Kan <shengchen.kan at intel.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86InstrCompiler.td
    M llvm/lib/Target/X86/X86InstrShiftRotate.td
    M llvm/lib/Target/X86/X86InstrUtils.td
    A llvm/test/CodeGen/X86/apx/rol.ll
    A llvm/test/CodeGen/X86/apx/ror.ll
    A llvm/test/CodeGen/X86/apx/sar.ll
    A llvm/test/CodeGen/X86/apx/shl.ll
    A llvm/test/CodeGen/X86/apx/shld.ll
    A llvm/test/CodeGen/X86/apx/shr.ll
    A llvm/test/CodeGen/X86/apx/shrd.ll
    A llvm/test/MC/Disassembler/X86/apx/rcl.txt
    A llvm/test/MC/Disassembler/X86/apx/rcr.txt
    A llvm/test/MC/Disassembler/X86/apx/rol.txt
    A llvm/test/MC/Disassembler/X86/apx/ror.txt
    A llvm/test/MC/Disassembler/X86/apx/sar.txt
    A llvm/test/MC/Disassembler/X86/apx/shl.txt
    A llvm/test/MC/Disassembler/X86/apx/shld.txt
    A llvm/test/MC/Disassembler/X86/apx/shr.txt
    A llvm/test/MC/Disassembler/X86/apx/shrd.txt
    A llvm/test/MC/X86/apx/rcl-att.s
    A llvm/test/MC/X86/apx/rcl-intel.s
    A llvm/test/MC/X86/apx/rcr-att.s
    A llvm/test/MC/X86/apx/rcr-intel.s
    A llvm/test/MC/X86/apx/rol-att.s
    A llvm/test/MC/X86/apx/rol-intel.s
    A llvm/test/MC/X86/apx/ror-att.s
    A llvm/test/MC/X86/apx/ror-intel.s
    A llvm/test/MC/X86/apx/sar-att.s
    A llvm/test/MC/X86/apx/sar-intel.s
    A llvm/test/MC/X86/apx/shl-att.s
    A llvm/test/MC/X86/apx/shl-intel.s
    A llvm/test/MC/X86/apx/shld-att.s
    A llvm/test/MC/X86/apx/shld-intel.s
    A llvm/test/MC/X86/apx/shr-att.s
    A llvm/test/MC/X86/apx/shr-intel.s
    A llvm/test/MC/X86/apx/shrd-att.s
    A llvm/test/MC/X86/apx/shrd-intel.s
    M llvm/test/TableGen/x86-fold-tables.inc

  Log Message:
  -----------
  [X86] Support encoding/decoding and lowering for APX variant SHL/SHR/SAR/ROL/ROR/RCL/RCR/SHLD/SHRD (#78853)

Four variants: promoted legacy, ND (new data destination), NF (no flags
update) and NF_ND (NF + ND).

The syntax of NF instructions is aligned with GNU binutils.
https://sourceware.org/pipermail/binutils/2023-September/129545.html


  Commit: afc229b217f499160b3228a0d7d1783613ac9b58
      https://github.com/llvm/llvm-project/commit/afc229b217f499160b3228a0d7d1783613ac9b58
  Author: Nico Weber <thakis at chromium.org>
  Date:   2024-01-22 (Mon, 22 Jan 2024)

  Changed paths:
    M llvm/utils/gn/secondary/compiler-rt/test/BUILD.gn

  Log Message:
  -----------
  Revert "[gn] port 3ab8d2aac7bc"

This reverts commit 9a03d94a4db6b6d3b7cb1582e9e9cc239e737a30.

3ab8d2aac7bc was reverted in bffd80d6df61.


  Commit: 9577806b1e6ce06bece48d96b39035f4cee9137d
      https://github.com/llvm/llvm-project/commit/9577806b1e6ce06bece48d96b39035f4cee9137d
  Author: Stefan Gränitz <stefan.graenitz at gmail.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/include/llvm/ExecutionEngine/JITLink/aarch32.h
    M llvm/lib/ExecutionEngine/JITLink/ELFLinkGraphBuilder.h
    M llvm/lib/ExecutionEngine/JITLink/ELF_aarch32.cpp
    M llvm/lib/ExecutionEngine/JITLink/aarch32.cpp
    M llvm/test/ExecutionEngine/JITLink/AArch32/ELF_relocations_data.s

  Log Message:
  -----------
  [JITLink][AArch32] Implement R_ARM_PREL31 and process .ARM.exidx sections (#79044)

`R_ARM_PREL31` is a 31-bits relative data relocation where the
most-significant bit is preserved. It's used primarily in `.ARM.exidx`
sections, which we skipped processing until now, because we didn't
support the relocation type. This was implemented in RuntimeDyld with
https://reviews.llvm.org/D25069 and I implemented it in a similar way in
JITLink in order to reach feature parity.


  Commit: 62eb65b36f8e8fa121de047c89fb7dbe5d4c96be
      https://github.com/llvm/llvm-project/commit/62eb65b36f8e8fa121de047c89fb7dbe5d4c96be
  Author: Sean Fertile <35576261+mandlebug at users.noreply.github.com>
  Date:   2024-01-22 (Mon, 22 Jan 2024)

  Changed paths:
    M clang/lib/Driver/Driver.cpp
    M clang/test/Driver/fat-lto-objects.c

  Log Message:
  -----------
  [FatLTO] output of -ffat-lto-objects -S should be assembly. (#79041)

Fat lto with -c compiles to an object file with the IR embedded in a
section of the object, the combination of fat-lto with -S should then
produce an assembly file equivalent of that. The IR output can still be
genreated by using both -S and -emit-llvm.


  Commit: 23edf782a268e750b18f720fa082a6891ae9d304
      https://github.com/llvm/llvm-project/commit/23edf782a268e750b18f720fa082a6891ae9d304
  Author: Petr Hosek <phosek at google.com>
  Date:   2024-01-22 (Mon, 22 Jan 2024)

  Changed paths:
    M libc/config/baremetal/riscv/entrypoints.txt
    M libc/docs/math/index.rst

  Log Message:
  -----------
  [libc] Include missing RISC-V stdlib.h and math.h entrypoints (#79034)

This matches the entrypoints for baremetal ARM.


  Commit: 4beb7237103a66e90b90a43b1ca0c77bca872d5b
      https://github.com/llvm/llvm-project/commit/4beb7237103a66e90b90a43b1ca0c77bca872d5b
  Author: Schrodinger ZHU Yifan <yifanzhu at rochester.edu>
  Date:   2024-01-22 (Mon, 22 Jan 2024)

  Changed paths:
    M libc/config/linux/aarch64/entrypoints.txt
    M libc/config/linux/app.h
    M libc/config/linux/arm/entrypoints.txt
    M libc/config/linux/riscv/entrypoints.txt
    M libc/config/linux/x86_64/entrypoints.txt
    M libc/src/sys/CMakeLists.txt
    A libc/src/sys/auxv/CMakeLists.txt
    A libc/src/sys/auxv/getauxval.h
    A libc/src/sys/auxv/linux/CMakeLists.txt
    A libc/src/sys/auxv/linux/getauxval.cpp
    M libc/test/src/sys/CMakeLists.txt
    A libc/test/src/sys/auxv/CMakeLists.txt
    A libc/test/src/sys/auxv/linux/CMakeLists.txt
    A libc/test/src/sys/auxv/linux/getauxval_test.cpp

  Log Message:
  -----------
  [libc] implement sys/getauxval (#78493)

This PR implements `sys/getauxval`
that can be used in both overlay builds and full builds.


  Commit: 3b171cb968b3f8495b096139fc57ff6263727e40
      https://github.com/llvm/llvm-project/commit/3b171cb968b3f8495b096139fc57ff6263727e40
  Author: Owen Pan <owenpiano at gmail.com>
  Date:   2024-01-22 (Mon, 22 Jan 2024)

  Changed paths:
    M clang/lib/Format/ContinuationIndenter.cpp
    M clang/lib/Format/WhitespaceManager.h
    M clang/unittests/Format/FormatTest.cpp

  Log Message:
  -----------
  [clang-format] Fix a bug in ContinuationIndenter (#78921)

Fixes #76991.


  Commit: 7e63940f69d99c12ccc18c76e1fc6b861fd459ec
      https://github.com/llvm/llvm-project/commit/7e63940f69d99c12ccc18c76e1fc6b861fd459ec
  Author: Shih-Po Hung <shihpo.hung at sifive.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

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

  Log Message:
  -----------
  [RISCV][CostModel] Make VMV_S_X and VMV_X_S cost independent of LMUL (#78739)

Following #77963, instructions like VMV_S_X/VMV_X_S 
handle single element, so the cost don't scale with LMUL.


  Commit: 4ef646eab3023b52ce8ee529d16605c92caba8ba
      https://github.com/llvm/llvm-project/commit/4ef646eab3023b52ce8ee529d16605c92caba8ba
  Author: Gedare Bloom <gedare at rtems.org>
  Date:   2024-01-22 (Mon, 22 Jan 2024)

  Changed paths:
    M clang/lib/Format/ContinuationIndenter.cpp
    M clang/unittests/Format/FormatTest.cpp

  Log Message:
  -----------
  [clang-format]: Fix formatting of if statements with BlockIndent  (#77699)

A bug with BlockIndent prevents line breaks within if (and else if)
clauses.

While fixing this bug, it appears that AlignAfterOpenBracket is not
designed to work with loop and if statements, but AlwaysBreak works on
if clauses. The documentation and tests are not clear on whether or not
this behavior is intended.

This PR preserves the `AlwaysBreak` behavior on `if` clauses without
supporting `BlockIndent` on `if` clauses to avoid regressions while
fixing the bug.

It may be reasonable to create an explicit option for alignment of if
(and loop) clauses intentionally for both `AlwaysBreak` and
`BlockIndent`

Fixes #54663.

Migrated from Differential Revision: https://reviews.llvm.org/D154755
See more discussion there. Addressed last open comment from the rev
about refactoring the complex conditional logic involved with the
`AlignAfterOpenBracket` line break behavior.


  Commit: 097a40ac899d0b88b4b62b85e6faa43802e87010
      https://github.com/llvm/llvm-project/commit/097a40ac899d0b88b4b62b85e6faa43802e87010
  Author: Chen Zheng <czhengsz at cn.ibm.com>
  Date:   2024-01-22 (Mon, 22 Jan 2024)

  Changed paths:
    M llvm/test/Analysis/CostModel/PowerPC/insert_extract.ll

  Log Message:
  -----------
  nfc add test cases for PowerPC vector instructions cost analysis


  Commit: 314526557ec66ee627ae8a1c03f6ccc610668fdb
      https://github.com/llvm/llvm-project/commit/314526557ec66ee627ae8a1c03f6ccc610668fdb
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-01-22 (Mon, 22 Jan 2024)

  Changed paths:
    M libcxx/docs/ReleaseNotes/18.rst
    A libcxx/src/include/overridable_function.h
    M libcxx/src/new.cpp
    A libcxx/test/libcxx/language.support/support.dynamic/assert.nothrow_new_not_overridden_fno_exceptions.pass.cpp
    A libcxx/test/libcxx/language.support/support.dynamic/new_dont_return_nullptr.pass.cpp
    M libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/new.size_align_nothrow.replace.indirect.pass.cpp
    M libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/new.size_nothrow.replace.indirect.pass.cpp
    M libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/new.size_align_nothrow.replace.indirect.pass.cpp
    M libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/new.size_nothrow.replace.indirect.pass.cpp
    M libcxx/test/support/check_assertion.h
    M libcxx/test/support/count_new.h
    M libcxx/test/support/test.support/test_check_assertion.pass.cpp
    M libcxxabi/src/stdlib_new_delete.cpp

  Log Message:
  -----------
  [libc++] Fix the behavior of throwing `operator new` under -fno-exceptions (#69498)

In D144319, Clang tried to land a change that would cause some functions
that are not supposed to return nullptr to optimize better. As reported
in https://reviews.llvm.org/D144319#4203982, libc++ started seeing
failures in its CI shortly after this change was landed.

As explained in D146379, the reason for these failures is that libc++'s
throwing `operator new` can in fact return nullptr when compiled with
exceptions disabled. However, this contradicts the Standard, which
clearly says that the throwing version of `operator new(size_t)` should
never return nullptr. This is actually a long standing issue. I've
previously seen a case where LTO would optimize incorrectly based on the
assumption that `operator new` doesn't return nullptr, an assumption
that was violated in that case because libc++.dylib was compiled with
-fno-exceptions.

Unfortunately, fixing this is kind of tricky. The Standard has a few
requirements for the allocation functions, some of which are impossible
to satisfy under -fno-exceptions:
1. `operator new(size_t)` must never return nullptr
2. `operator new(size_t, nothrow_t)` must call the throwing version and
return nullptr on failure to allocate
3. We can't throw exceptions when compiled with -fno-exceptions

In the case where exceptions are enabled, things work nicely.
`new(size_t)` throws and `new(size_t, nothrow_t)` uses a try-catch to
return nullptr. However, when compiling the library with
-fno-exceptions, we can't throw an exception from `new(size_t)`, and we
can't catch anything from `new(size_t, nothrow_t)`. The only thing we
can do from `new(size_t)` is actually abort the program, which does not
make it possible for `new(size_t, nothrow_t)` to catch something and
return nullptr.

This patch makes the following changes:
1. When compiled with -fno-exceptions, the throwing version of `operator
new` will now abort on failure instead of returning nullptr on failure.
This resolves the issue that the compiler could mis-compile based on the
assumption that nullptr is never returned. This constitutes an API and
ABI breaking change for folks compiling the library with -fno-exceptions
(which is not the general public, who merely uses libc++ headers but use
a shared library that has already been compiled). This should mostly
impact vendors and other folks who compile libc++.dylib themselves.

2. When the library is compiled with -fexceptions, the nothrow version
of `operator new` has no change. When the library is compiled with
-fno-exceptions, the nothrow version of `operator new` will now check
whether the throwing version of `operator new` has been overridden. If
it has not been overridden, then it will use an implementation
equivalent to that of the throwing `operator new`, except it will return
nullptr on failure to allocate (instead of terminating). However, if the
throwing `operator new` has been overridden, it is now an error NOT to
also override the nothrow `operator new`. Indeed, there is no way for us
to implement a valid nothrow `operator new` without knowing the exact
implementation of the throwing version.

In summary, this change will impact people who fall into the following
intersection of conditions:
- They use the libc++ shared/static library built with `-fno-exceptions`
- They do not override `operator new(..., std::nothrow_t)`
- They override `operator new(...)` (the throwing version)
- They use `operator new(..., std::nothrow_t)`

We believe this represents a small number of people.

Fixes #60129
rdar://103958777

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


  Commit: 888f2a58a9d441e29a6769ff0d96ec5306262336
      https://github.com/llvm/llvm-project/commit/888f2a58a9d441e29a6769ff0d96ec5306262336
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-01-22 (Mon, 22 Jan 2024)

  Changed paths:
    M libcxx/test/support/check_assertion.h

  Log Message:
  -----------
  [libc++][NFC] Fix formatting in check_assertion.h


  Commit: f3dd8f10c77f29ff2563482c96c33f2c2bbc847c
      https://github.com/llvm/llvm-project/commit/f3dd8f10c77f29ff2563482c96c33f2c2bbc847c
  Author: Yitzhak Mandelbaum <ymand at users.noreply.github.com>
  Date:   2024-01-22 (Mon, 22 Jan 2024)

  Changed paths:
    M clang/include/clang/Analysis/FlowSensitive/DataflowAnalysis.h
    M clang/include/clang/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.h
    M clang/lib/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.cpp
    M clang/unittests/Analysis/FlowSensitive/TestingSupport.cpp
    M clang/unittests/Analysis/FlowSensitive/TestingSupport.h
    M clang/unittests/Analysis/FlowSensitive/TransferTest.cpp
    M clang/unittests/Analysis/FlowSensitive/TypeErasedDataflowAnalysisTest.cpp

  Log Message:
  -----------
  [clang][dataflow] Make cap on block visits configurable by caller. (#77481)

Previously, we hard-coded the cap on block visits inside the framework.
This
patch enables the caller to specify the cap in the APIs for running an
analysis.


  Commit: 904b0901ef2d33e6232b7a51fa2525c30fd117e8
      https://github.com/llvm/llvm-project/commit/904b0901ef2d33e6232b7a51fa2525c30fd117e8
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-01-22 (Mon, 22 Jan 2024)

  Changed paths:
    M clang/test/Preprocessor/riscv-target-features.c
    M llvm/lib/Target/RISCV/RISCVProcessors.td

  Log Message:
  -----------
  [RISCV] Add FeatureFastUnalignedAccess to sifive-p450. (#79075)


  Commit: 35ab0c78cf5f2294e251a6fb1e0d6e58dc80d955
      https://github.com/llvm/llvm-project/commit/35ab0c78cf5f2294e251a6fb1e0d6e58dc80d955
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/test/Transforms/Attributor/nofpclass-implied-by-fcmp.ll

  Log Message:
  -----------
  ValueTracking: Add tests fcmpToClassTest for fcmp true/false


  Commit: 1a99df9f3dfdfd6ff3a3d46113c9e0e9d55ad892
      https://github.com/llvm/llvm-project/commit/1a99df9f3dfdfd6ff3a3d46113c9e0e9d55ad892
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/test/Transforms/Attributor/nofpclass-implied-by-fcmp.ll

  Log Message:
  -----------
  ValueTracking: Add tests for fcmpToClassTest for fcmp ole/ugt inf

This catches an assertion in a recommit of
dc3faf0ed0e3f1ea9e435a006167d9649f865da1


  Commit: 8076b896955e91cc2d16283cf8206f3354702022
      https://github.com/llvm/llvm-project/commit/8076b896955e91cc2d16283cf8206f3354702022
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

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

  Log Message:
  -----------
  ValueTracking: Handle fcmp true/false in fcmpToClassTest

This ensures full compare coverage for certain special constants.


  Commit: 28f9041879620b44505d54670f5ccb2ed48b24d9
      https://github.com/llvm/llvm-project/commit/28f9041879620b44505d54670f5ccb2ed48b24d9
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-01-22 (Mon, 22 Jan 2024)

  Changed paths:
    M llvm/lib/DebugInfo/DWARF/DWARFContext.cpp

  Log Message:
  -----------
  [DebugInfo] Use DenseMap::lookup (NFC)


  Commit: a0b459df256e8d16cade7f38a6fdaf2e763c847f
      https://github.com/llvm/llvm-project/commit/a0b459df256e8d16cade7f38a6fdaf2e763c847f
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-01-22 (Mon, 22 Jan 2024)

  Changed paths:
    M llvm/include/llvm/IR/GlobalValue.h

  Log Message:
  -----------
  [IR] Use StringRef::consume_front (NFC)


  Commit: 47c76e7aba0cf823f7fa883e0d374ad1a160067a
      https://github.com/llvm/llvm-project/commit/47c76e7aba0cf823f7fa883e0d374ad1a160067a
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-01-22 (Mon, 22 Jan 2024)

  Changed paths:
    M llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp

  Log Message:
  -----------
  [SPIRV] Use llvm::find (NFC)


  Commit: 8c3304453c22ad1b5a914e64a7f6435f58f4099c
      https://github.com/llvm/llvm-project/commit/8c3304453c22ad1b5a914e64a7f6435f58f4099c
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-01-22 (Mon, 22 Jan 2024)

  Changed paths:
    M llvm/tools/llvm-diff/lib/DifferenceEngine.cpp

  Log Message:
  -----------
  [llvm-diff] Use llvm::predecessors (NFC)


  Commit: f1d3ebc9918aa6d1d04cda98da1ecef2dd51978c
      https://github.com/llvm/llvm-project/commit/f1d3ebc9918aa6d1d04cda98da1ecef2dd51978c
  Author: S. B. Tam <cpplearner at outlook.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M libcxx/test/std/diagnostics/syserr/syserr.compare/eq_error_code_error_code.pass.cpp
    M libcxx/test/std/diagnostics/syserr/syserr.errcat/syserr.errcat.derived/message.pass.cpp
    M libcxx/test/std/diagnostics/syserr/syserr.errcat/syserr.errcat.objects/system_category.pass.cpp

  Log Message:
  -----------
   [libc++][test] Use LIBCPP_ASSERT in some `system_category`-related tests (#78834)


  Commit: a6065f0fa55aaf694b5f85ecad7badec5cc02425
      https://github.com/llvm/llvm-project/commit/a6065f0fa55aaf694b5f85ecad7badec5cc02425
  Author: Eli Friedman <efriedma at quicinc.com>
  Date:   2024-01-22 (Mon, 22 Jan 2024)

  Changed paths:
    M clang/lib/CodeGen/CGCXX.cpp
    M llvm/include/llvm/IR/CallingConv.h
    M llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
    M llvm/lib/Target/AArch64/AArch64.h
    A llvm/lib/Target/AArch64/AArch64Arm64ECCallLowering.cpp
    M llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
    M llvm/lib/Target/AArch64/AArch64CallingConvention.h
    M llvm/lib/Target/AArch64/AArch64CallingConvention.td
    M llvm/lib/Target/AArch64/AArch64FastISel.cpp
    M llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/lib/Target/AArch64/AArch64ISelLowering.h
    M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
    M llvm/lib/Target/AArch64/AArch64InstrInfo.td
    M llvm/lib/Target/AArch64/AArch64MCInstLower.cpp
    M llvm/lib/Target/AArch64/AArch64MCInstLower.h
    M llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp
    M llvm/lib/Target/AArch64/AArch64Subtarget.cpp
    M llvm/lib/Target/AArch64/AArch64Subtarget.h
    M llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
    M llvm/lib/Target/AArch64/CMakeLists.txt
    M llvm/lib/Target/AArch64/GISel/AArch64CallLowering.cpp
    M llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h
    M llvm/test/CodeGen/AArch64/arm64ec-dllimport.ll
    A llvm/test/CodeGen/AArch64/arm64ec-entry-thunks-local-linkage.ll
    A llvm/test/CodeGen/AArch64/arm64ec-entry-thunks.ll
    A llvm/test/CodeGen/AArch64/arm64ec-exit-thunks.ll
    M llvm/test/CodeGen/AArch64/arm64ec-reservedregs.ll
    M llvm/test/CodeGen/AArch64/arm64ec-varargs.ll
    M llvm/test/CodeGen/AArch64/stack-protector-target.ll
    M llvm/test/CodeGen/AArch64/win-alloca.ll

  Log Message:
  -----------
  Arm64EC entry/exit thunks, consolidated. (#79067)

This combines the previously posted patches with some additional work
I've done to more closely match MSVC output.

Most of the important logic here is implemented in
AArch64Arm64ECCallLowering. The purpose of the
AArch64Arm64ECCallLowering is to take "normal" IR we'd generate for
other targets, and generate most of the Arm64EC-specific bits:
generating thunks, mangling symbols, generating aliases, and generating
the .hybmp$x table. This is all done late for a few reasons: to
consolidate the logic as much as possible, and to ensure the IR exposed
to optimization passes doesn't contain complex arm64ec-specific
constructs.

The other changes are supporting changes, to handle the new constructs
generated by that pass.

There's a global llvm.arm64ec.symbolmap representing the .hybmp$x
entries for the thunks. This gets handled directly by the AsmPrinter
because it needs symbol indexes that aren't available before that.

There are two new calling conventions used to represent calls to and
from thunks: ARM64EC_Thunk_X64 and ARM64EC_Thunk_Native. There are a few
changes to handle the associated exception-handling info,
SEH_SaveAnyRegQP and SEH_SaveAnyRegQPX.

I've intentionally left out handling for structs with small
non-power-of-two sizes, because that's easily separated out. The rest of
my current work is here. I squashed my current patches because they were
split in ways that didn't really make sense. Maybe I could split out
some bits, but it's hard to meaningfully test most of the parts
independently.

Thanks to @dpaoliello for extensive testing and suggestions.

(Originally posted as https://reviews.llvm.org/D157547 .)


  Commit: 4ee195a2a791cc338feddfa8d82679eddb330bf1
      https://github.com/llvm/llvm-project/commit/4ee195a2a791cc338feddfa8d82679eddb330bf1
  Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

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

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


  Commit: ce3e767ac5ea1a1d1a166e88c152e2125ec7662b
      https://github.com/llvm/llvm-project/commit/ce3e767ac5ea1a1d1a166e88c152e2125ec7662b
  Author: ManuelvOK <info at manuel-thieme.de>
  Date:   2024-01-22 (Mon, 22 Jan 2024)

  Changed paths:
    M clang/lib/CodeGen/CodeGenPGO.cpp
    M clang/lib/CodeGen/CoverageMappingGen.cpp

  Log Message:
  -----------
  [Coverage] Map regions from system headers (#76950)

In 2155195131a57f2f01e7cfabb85bb027518c2dc6, the
"system-headers-coverage" option has been added but not used in all
necessary places.

Potential reviewers: @gulfemsavrun @petrhosek

Co-authored-by: Manuel Kalettka <manuel.kalettka at kernkonzept.com>


  Commit: 3f740322c5b9b7d6f45a73d2fac948df3c74a3a7
      https://github.com/llvm/llvm-project/commit/3f740322c5b9b7d6f45a73d2fac948df3c74a3a7
  Author: Schrodinger ZHU Yifan <yifanzhu at rochester.edu>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M libc/config/linux/arm/entrypoints.txt

  Log Message:
  -----------
  [libc] remove getauxval from arm32 entrypoint list (#79093)

`getauxval` depends on `open/read/close` which are not built on arm32.
Remove `getauxval` for now.


  Commit: 86f05477d0bd7347e9bec8c1f9a7d89c167ad556
      https://github.com/llvm/llvm-project/commit/86f05477d0bd7347e9bec8c1f9a7d89c167ad556
  Author: Schrodinger ZHU Yifan <yifanzhu at rochester.edu>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M libc/src/sys/auxv/linux/CMakeLists.txt

  Log Message:
  -----------
  [libc] add missing header deps to getauxval (#79091)

`getauxval` depends on `libc.include.sys_auxv`


  Commit: fcb8342a219ada8ec641790a4c8a9f969d7d64ee
      https://github.com/llvm/llvm-project/commit/fcb8342a219ada8ec641790a4c8a9f969d7d64ee
  Author: Ami-zhang <zhanglimin at loongson.cn>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M clang/include/clang/Basic/BuiltinsLoongArchBase.def
    M clang/include/clang/Basic/BuiltinsLoongArchLASX.def
    M clang/include/clang/Basic/BuiltinsLoongArchLSX.def
    M clang/lib/Headers/larchintrin.h
    M clang/lib/Headers/lasxintrin.h
    M clang/lib/Headers/lsxintrin.h
    A clang/test/CodeGen/LoongArch/builtin-dbl-approximate.c
    A clang/test/CodeGen/LoongArch/builtin-flt-approximate.c
    M clang/test/CodeGen/LoongArch/intrinsic-la64-error.c
    A clang/test/CodeGen/LoongArch/lasx/builtin-approximate-alias.c
    A clang/test/CodeGen/LoongArch/lasx/builtin-approximate.c
    A clang/test/CodeGen/LoongArch/lsx/builtin-approximate-alias.c
    A clang/test/CodeGen/LoongArch/lsx/builtin-approximate.c
    M llvm/include/llvm/IR/IntrinsicsLoongArch.td
    M llvm/lib/Target/LoongArch/LoongArch.td
    M llvm/lib/Target/LoongArch/LoongArchFloat32InstrInfo.td
    M llvm/lib/Target/LoongArch/LoongArchFloat64InstrInfo.td
    M llvm/lib/Target/LoongArch/LoongArchLASXInstrInfo.td
    M llvm/lib/Target/LoongArch/LoongArchLSXInstrInfo.td
    M llvm/lib/Target/LoongArch/LoongArchSubtarget.h
    A llvm/test/CodeGen/LoongArch/intrinsic-frecipe-dbl.ll
    A llvm/test/CodeGen/LoongArch/intrinsic-frecipe-flt.ll
    A llvm/test/CodeGen/LoongArch/lasx/intrinsic-frecipe.ll
    A llvm/test/CodeGen/LoongArch/lasx/intrinsic-frsqrte.ll
    A llvm/test/CodeGen/LoongArch/lsx/intrinsic-frecipe.ll
    A llvm/test/CodeGen/LoongArch/lsx/intrinsic-frsqrte.ll

  Log Message:
  -----------
  [LoongArch] Add definitions and feature 'frecipe' for FP approximation intrinsics/builtins (#78962)

This PR adds definitions and 'frecipe' feature for FP approximation
intrinsics/builtins. In additions, this adds and complements relative
testcases.


  Commit: 39a1b280a170ff8e0e605693f8386b8dd161cf94
      https://github.com/llvm/llvm-project/commit/39a1b280a170ff8e0e605693f8386b8dd161cf94
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-01-22 (Mon, 22 Jan 2024)

  Changed paths:
    M lld/test/ELF/lto/cache.ll
    M lld/test/ELF/lto/thinlto.ll

  Log Message:
  -----------
  [ELF] Improve ThinLTO tests


  Commit: 150a58bed08f9f83ae4157a033ef1c67c210bbc4
      https://github.com/llvm/llvm-project/commit/150a58bed08f9f83ae4157a033ef1c67c210bbc4
  Author: Piotr Zegar <me at piotrzegar.pl>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M clang-tools-extra/docs/clang-tidy/checks/list.rst

  Log Message:
  -----------
  [clang-tidy][DOC] Update list.rst

Update list.rst to put checks in alphabetical order


  Commit: 297b77036e82b7684e1823c14b318e365aed5b26
      https://github.com/llvm/llvm-project/commit/297b77036e82b7684e1823c14b318e365aed5b26
  Author: Simeon K <5235180+simeonkr at users.noreply.github.com>
  Date:   2024-01-22 (Mon, 22 Jan 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
    M llvm/test/CodeGen/RISCV/rvv/allocate-lmul-2-4-8.ll

  Log Message:
  -----------
  [RISCV] Fix stack size computation when M extension disabled (#78602)

Ensure that getVLENFactoredAmount does not fail when the scale amount
requires the use of a non-trivial multiplication but the M extension is
not enabled. In such case, perform the multiplication using shifts and
adds.


  Commit: f799f936929c232a16abc7c520a10fecadbf05f9
      https://github.com/llvm/llvm-project/commit/f799f936929c232a16abc7c520a10fecadbf05f9
  Author: yjijd <licongtian at loongson.cn>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
    M llvm/lib/Target/LoongArch/LoongArchLASXInstrInfo.td
    M llvm/lib/Target/LoongArch/LoongArchLSXInstrInfo.td
    A llvm/test/CodeGen/LoongArch/lasx/ir-instruction/sitofp.ll
    A llvm/test/CodeGen/LoongArch/lasx/ir-instruction/uitofp.ll
    A llvm/test/CodeGen/LoongArch/lsx/ir-instruction/sitofp.ll
    A llvm/test/CodeGen/LoongArch/lsx/ir-instruction/uitofp.ll

  Log Message:
  -----------
  [CodeGen][LoongArch] Set SINT_TO_FP/UINT_TO_FP to legal for vector types (#78924)

Support the following conversions:
v4i32->v4f32, v2i64->v2f64(LSX)
v8i32->v8f32, v4i64->v4f64(LASX)
v4i32->v4f64, v4i64->v4f32(LASX)


  Commit: 9e2c0f000549991ea5585d6799ade92811a8faae
      https://github.com/llvm/llvm-project/commit/9e2c0f000549991ea5585d6799ade92811a8faae
  Author: Lu Weining <luweining at loongson.cn>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M llvm/docs/ReleaseNotes.rst

  Log Message:
  -----------
  [docs] Add llvm & clang release notes for LoongArch (#79097)


  Commit: 8938bc0ad0651f8d481cca2b2b98345d34b3aabe
      https://github.com/llvm/llvm-project/commit/8938bc0ad0651f8d481cca2b2b98345d34b3aabe
  Author: Konstantin Varlamov <varconsteq at gmail.com>
  Date:   2024-01-22 (Mon, 22 Jan 2024)

  Changed paths:
    M libcxx/include/__algorithm/comp_ref_type.h
    M libcxx/include/__algorithm/nth_element.h
    M libcxx/include/__algorithm/sort.h
    M libcxx/include/__algorithm/three_way_comp_ref_type.h
    M libcxx/include/__config
    M libcxx/include/__debug_utils/strict_weak_ordering_check.h
    R libcxx/test/libcxx/algorithms/alg.sorting/assert.sort.invalid_comparator.pass.cpp
    A libcxx/test/libcxx/algorithms/alg.sorting/assert.sort.invalid_comparator/assert.sort.invalid_comparator.oob.pass.cpp
    A libcxx/test/libcxx/algorithms/alg.sorting/assert.sort.invalid_comparator/assert.sort.invalid_comparator.pass.cpp
    A libcxx/test/libcxx/algorithms/alg.sorting/assert.sort.invalid_comparator/bad_comparator_values.h
    A libcxx/test/libcxx/algorithms/alg.sorting/assert.sort.invalid_comparator/invalid_comparator_utilities.h
    R libcxx/test/libcxx/algorithms/alg.sorting/bad_comparator_values.h

  Log Message:
  -----------
  [libc++][hardening] Categorize assertions related to strict weak ordering (#77405)

If a user passes a comparator that doesn't satisfy strict weak ordering
(see https://eel.is/c++draft/algorithms#alg.sorting.general) to
a sorting algorithm, the algorithm can produce an incorrect result or
even lead
to an out-of-bounds access. Unfortunately, comprehensively validating
that a given comparator indeed satisfies the strict weak ordering
requirement is prohibitively expensive (see [the related
RFC](https://discourse.llvm.org/t/rfc-strict-weak-ordering-checks-in-the-debug-libc/70217)).
As a result, we have three independent sets of checks:

- assertions that catch out-of-bounds accesses within the algorithms'
  implementation. These are relatively cheap; however, they cannot catch
  the underlying cause and cannot prevent the case where an invalid
  comparator would result in an incorrectly-sorted sequence without
  actually triggering an OOB access;

- debug comparators that wrap a given comparator and on each comparison
  check that if `(a < b)`, then `!(b < a)`, where `<` stands for the
  user-provided comparator. This performs up to 2x number of comparisons
  but doesn't affect the algorithmic complexity. While this approach can
  find more issues, it is still a heuristic;

- a comprehensive check of the comparator that validates up to 100
  elements in the resulting sorted sequence (see the RFC above for
details). The check is expensive but the 100 element limit can somewhat
  compensate for that, especially for large values of `N`.

The first set of checks is enabled in the fast hardening mode while the
other two are only enabled in the debug mode.

This patch also removes the
`_LIBCPP_DEBUG_STRICT_WEAK_ORDERING_CHECK` macro that
previously was used to selectively enable the 100-element check.
Now this check is enabled unconditionally in the debug mode.

Also, introduce a new category
`_LIBCPP_ASSERT_SEMANTIC_REQUIREMENT`. This category is
intended for checking the semantic requirements from the Standard.
Typically, these are hard or impossible to completely validate, so
these checks are expected to be heuristic in nature and potentially
quite expensive.

See https://reviews.llvm.org/D150264 for additional background.
Fixes #71496


  Commit: ab32a3c166e9eae12260b4c6eca9bcf21f500e87
      https://github.com/llvm/llvm-project/commit/ab32a3c166e9eae12260b4c6eca9bcf21f500e87
  Author: Michael Klemm <michael.klemm at amd.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M flang/module/iso_c_binding.f90
    M flang/module/iso_fortran_env.f90

  Log Message:
  -----------
  [flang] Do not leak intrinsics used by ISO_C_BINDING and ISO_FORTRAN_ENV (#79006)

This resolves bug #78953. Intrinsics used by the MODULE definition are
being declared PRIVATE, so that they do not leak into the namespace of
the code that USEs the modules.


  Commit: 44ba6ebc999d6e9b27bedfe04a993adfd204dc6a
      https://github.com/llvm/llvm-project/commit/44ba6ebc999d6e9b27bedfe04a993adfd204dc6a
  Author: yjijd <licongtian at loongson.cn>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
    M llvm/lib/Target/LoongArch/LoongArchLASXInstrInfo.td
    M llvm/lib/Target/LoongArch/LoongArchLSXInstrInfo.td
    A llvm/test/CodeGen/LoongArch/lasx/ir-instruction/fptosi.ll
    A llvm/test/CodeGen/LoongArch/lasx/ir-instruction/fptoui.ll
    A llvm/test/CodeGen/LoongArch/lsx/ir-instruction/fptosi.ll
    A llvm/test/CodeGen/LoongArch/lsx/ir-instruction/fptoui.ll

  Log Message:
  -----------
  [CodeGen][LoongArch] Set FP_TO_SINT/FP_TO_UINT to legal for vector types (#79107)

Support the following conversions:
v4f32->v4i32, v2f64->v2i64(LSX)
v8f32->v8i32, v4f64->v4i64(LASX)
v4f32->v4i64, v4f64->v4i32(LASX)


  Commit: 3ea92ea2f9d236569f82825cdba6d59bcc22495c
      https://github.com/llvm/llvm-project/commit/3ea92ea2f9d236569f82825cdba6d59bcc22495c
  Author: Yi Kong <yikong at google.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

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

  Log Message:
  -----------
  Fix MFS warning format

WithColor::warning() does not append new line automatically.


  Commit: 7da76958390a43b2fd1db506c90970aeae4367eb
      https://github.com/llvm/llvm-project/commit/7da76958390a43b2fd1db506c90970aeae4367eb
  Author: Aiden Grossman <agrossman154 at yahoo.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/include/llvm/Target/TargetPfmCounters.td
    M llvm/lib/Target/X86/X86PfmCounters.td
    M llvm/tools/llvm-exegesis/lib/BenchmarkResult.cpp
    M llvm/tools/llvm-exegesis/lib/BenchmarkResult.h
    M llvm/tools/llvm-exegesis/llvm-exegesis.cpp

  Log Message:
  -----------
  [llvm-exegesis] Add additional validation counters (#76788)

This patch adds support for additional types of validation counters and
also adds mappings between these new validation counter types and
physical counters on the hardware for microarchitectures that I have the
ability to test on.


  Commit: ba1e84fb8f45e102f40f409fcfe9b420fbf9fb70
      https://github.com/llvm/llvm-project/commit/ba1e84fb8f45e102f40f409fcfe9b420fbf9fb70
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/Serialization/ASTReader.h
    M clang/lib/Serialization/ASTReader.cpp
    A clang/test/Modules/pr60085.cppm
    A clang/test/Modules/pr78830.cppm

  Log Message:
  -----------
  [C++20] [Modules] Handle inconsistent deduced function return type from importing modules

Close https://github.com/llvm/llvm-project/issues/78830
Close https://github.com/llvm/llvm-project/issues/60085

The direct reason of the issues is that in a module unit, the return
type of a function is deduced to a concrete type (e.g., int) but in the
other module unit, the return type of the same function is not deduced
yet (e.g, auto). Then when we importing the 2 modules, the later
function is selected but the code generator doesn't know how to generate
the auto type. So here is the crash.

The tricky part here is that, when the ASTReader reads the second
unreduced function, it finds the reading function has the same signature
with the already read deduced one and they have the same ODRHash. So
that the ASTReader skips loading the function body of the unreduced
function then the code generator can't infer the undeduced type like it
usually can. Also this is generally fine for functions without deducing
type since it is sufficient to emit a function call without the function
body.

Also in fact, we've already handled the case that the functon has
deduced type and its deducing state is inconsist in different modules:
https://github.com/llvm/llvm-project/blob/3ea92ea2f9d236569f82825cdba6d59bcc22495c/clang/lib/Serialization/ASTReader.cpp#L9531-L9544
and
https://github.com/llvm/llvm-project/blob/3ea92ea2f9d236569f82825cdba6d59bcc22495c/clang/lib/Serialization/ASTReaderDecl.cpp#L3643-L3647.

We've handled the case:
(1) If we read the undeduced functions first and read the deduced functions
later, the compiler will propagate the deduced type info for redecls in
the end of the reading.
(2) If we read the deduced functions first and read the undeduced
functions later, we will propagae the deduced type info when we **complete
the redecl chain**.

However, in the reporting issues, we're in the second case and
reproducer didn't trigger the action to complete the redecl chain. So
here is the crash.

Then it is obvious how should fix the problem. We should complete the
redecl chain for undeduced function types in the end of the reading for
the second case.


  Commit: 134fcc62786d31ab73439201dce2d73808d1785a
      https://github.com/llvm/llvm-project/commit/134fcc62786d31ab73439201dce2d73808d1785a
  Author: Shengchen Kan <shengchen.kan at intel.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

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

  Log Message:
  -----------
  [X86][NFC] Simplify function X86InstrInfo::commuteInstructionImpl


  Commit: f20556678c70f89f96ed01b2c6092c5f7d6efedd
      https://github.com/llvm/llvm-project/commit/f20556678c70f89f96ed01b2c6092c5f7d6efedd
  Author: David Spickett <david.spickett at linaro.org>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp
    A llvm/test/CodeGen/AArch64/blr-bti-preserves-operands.mir
    R llvm/test/CodeGen/AArch64/blr-bti-preserves-regmask.mir

  Log Message:
  -----------
  Reland "[llvm][AArch64] Copy all operands when expanding BLR_BTI bundle (#78267)" (#78719)

This reverts commit 955417ade2648c2b1a4e5f0be697f61570590a88.

The problem with the previous version was that the bundle instruction
had arguments like "target arg1 arg2". When it's expanded we produced a
BL or BLR which can only accept one argument, the target of the branch.

Now I realise why expandCALL_RVMARKER has to copy them in mutiple steps.
The operands for the called function need to be changed to implicit
arguments of the branch instruction.

* Copy the branch target.
* Copy all register operands, marking them as implicit.
* Copy any other operands without modifying them.

Prior to any attempt to fix #77915:
BL @_setjmp, csr_aarch64_aapcs, implicit-def $lr, implicit $sp,
implicit-def dead $lr, implicit $sp, implicit-def $sp

Which is dropping the use of the arguments for the called function.

My first fix attempt produced:
BL @_setjmp, $x0, $w1, <regmask $fp ...>, implicit-def $lr, implicit
$sp, implicit-def dead $lr, implicit $sp, implicit-def $sp

It copied the arguments but as explicit arguments to the BL which only
expects 1, failing verification.

With this new change we produce:
BL @_setjmp, csr_aarch64_aapcs, implicit-def $lr, implicit $sp, implicit
$x0, implicit $w1, implicit-def dead $lr, implicit $sp, implicit-def $sp

Note specifically the added "implicit $x0, implicit $w1". So BL only has
1 explicit argument, but the arguments to the function are still used.


  Commit: d8628a00fd92c6f9db631f817a63eada90707ad2
      https://github.com/llvm/llvm-project/commit/d8628a00fd92c6f9db631f817a63eada90707ad2
  Author: Jianjian Guan <jacquesguan at me.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

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

  Log Message:
  -----------
  [RISCV] Add IntrArgMemOnly for vector unit stride load/store intrinsics (#78415)

IntrArgMemOnly means the intrinsic only accesses memory that its
pointer-typed argument(s) points to. I think RVV load/store intrinsics
meets it. Add IntrArgMemOnly would help in some passes, by example, it
could add `alais.scope` to intrinsics callee when try to inline a
function that has noalais parameter(s).


  Commit: c193bb7e9eee02a435944506c732db9b480f0c84
      https://github.com/llvm/llvm-project/commit/c193bb7e9eee02a435944506c732db9b480f0c84
  Author: NAKAMURA Takumi <geek4civic at gmail.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/lib/ProfileData/Coverage/CoverageMapping.cpp
    A llvm/test/tools/llvm-cov/Inputs/mcdc-maxbs.c
    A llvm/test/tools/llvm-cov/Inputs/mcdc-maxbs.o
    A llvm/test/tools/llvm-cov/Inputs/mcdc-maxbs.proftext
    A llvm/test/tools/llvm-cov/mcdc-maxbs.test

  Log Message:
  -----------
  [Coverage] getMaxBitmapSize: Scan `max(BitmapIdx)` instead of the last `Decision` (#78963)

In `CoverageMapping.cpp:getMaxBitmapSize()`, 
this assumed that the last `Decision` has the maxmum `BitmapIdx`.

Let it scan `max(BitmapIdx)`.

Note that `<=` is used insted of `<`, because `BitmapIdx == 0` is valid
and `MaxBitmapID` is `unsigned`. `BitmapIdx` is unique in the record.

Fixes #78922


  Commit: 66237d647ed95d7df92a438f8181c11423addc7d
      https://github.com/llvm/llvm-project/commit/66237d647ed95d7df92a438f8181c11423addc7d
  Author: Shengchen Kan <shengchen.kan at intel.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86CompressEVEX.cpp
    M llvm/lib/Target/X86/X86InstrInfo.cpp
    M llvm/test/CodeGen/X86/apx/compress-evex.mir
    M llvm/test/CodeGen/X86/apx/shrd.ll

  Log Message:
  -----------
  [X86][CodeGen] Add entries for NDD SHLD/SHRD to the commuteInstructionImpl


  Commit: ccf1e322bd5828c74ac5213dc2e05ab506da25bd
      https://github.com/llvm/llvm-project/commit/ccf1e322bd5828c74ac5213dc2e05ab506da25bd
  Author: martinboehme <mboehme at google.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M clang/include/clang/Analysis/FlowSensitive/Transfer.h
    M clang/lib/Analysis/FlowSensitive/Transfer.cpp
    M clang/lib/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.cpp
    M clang/unittests/Analysis/FlowSensitive/LoggerTest.cpp
    M clang/unittests/Analysis/FlowSensitive/SignAnalysisTest.cpp
    M clang/unittests/Analysis/FlowSensitive/TransferTest.cpp

  Log Message:
  -----------
  [clang][dataflow] Process terminator condition within `transferCFGBlock()`. (#78127)

In particular, it's important that we create the "fallback" atomic at
this point
(which we produce if the transfer function didn't produce a value for
the
expression) so that it is placed in the correct environment.

Previously, we processed the terminator condition in the
`TerminatorVisitor`,
which put the fallback atomic in a copy of the environment that is
produced as
input for the _successor_ block, rather than the environment for the
block
containing the expression for which we produce the fallback atomic.

As a result, we produce different fallback atomics every time we process
the
successor block, and hence we don't have a consistent representation of
the
terminator condition in the flow condition.

This patch includes a test (authored by ymand@) that fails without the
fix.


  Commit: 60e1c835d326a74ef67bf4b9399d439262d0380e
      https://github.com/llvm/llvm-project/commit/60e1c835d326a74ef67bf4b9399d439262d0380e
  Author: Stephen Tozer <stephen.tozer at sony.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/include/llvm/IR/DebugInfo.h
    M llvm/lib/Transforms/Scalar/SROA.cpp
    M llvm/test/DebugInfo/Generic/assignment-tracking/instcombine/remove-redundant-dbg.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/sroa/after-inlining.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/sroa/alloca-single-slice.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/sroa/arglist.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/sroa/complex.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/sroa/fail-fragment.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/sroa/frag-2.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/sroa/frag.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/sroa/id.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/sroa/memcpy.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/sroa/memmove-to-from-same-alloca.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/sroa/remove-redundant-dbg.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/sroa/rewrite.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/sroa/split-pre-fragmented-store-2.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/sroa/split-pre-fragmented-store.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/sroa/store.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/sroa/unspecified-var-size.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/sroa/user-memcpy.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/sroa/var-sized-fragment.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/sroa/vec-1.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/sroa/vec-2.ll

  Log Message:
  -----------
  [RemoveDIs][DebugInfo] Update SROA to handle DPVAssigns (#78475)

SROA needs to update llvm.dbg.assign intrinsics when it migrates debug
info in response to alloca splitting; this patch updates the debug info
migration code to handle DPVAssigns as well, making use of generic code
to avoid duplication as much as possible.


  Commit: 47bcc91e06798e8730983b3848cc152a79c7afae
      https://github.com/llvm/llvm-project/commit/47bcc91e06798e8730983b3848cc152a79c7afae
  Author: harishch4 <harishcse44 at gmail.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M flang/lib/Semantics/resolve-directives.cpp
    A flang/test/Lower/OpenMP/threadprivate-default-clause.f90

  Log Message:
  -----------
  [Flang][OpenMP] Fix to variables not inheriting data sharing attributes (#79017)

When a default(none) clause exists and a threadprivate variable is used
inside the construct, the variable does not inherit threadprivate
behavior and throws the below error.

> error: The DEFAULT(NONE) clause requires that 'a' must be listed in a
data-sharing attribute clause

Added a condition to skip the error if it is a threadprivate variable.

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


  Commit: 5a458767dd797cbfa2eeb12b9b8b64f2c63159a5
      https://github.com/llvm/llvm-project/commit/5a458767dd797cbfa2eeb12b9b8b64f2c63159a5
  Author: Ivan Kosarev <ivan.kosarev at amd.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
    M llvm/lib/Target/AMDGPU/BUFInstructions.td
    M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCCodeEmitter.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/gfx11_asm_vop1_dpp16.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop1_dpp8.s
    M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop1_dpp16.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop1_dpp8.txt

  Log Message:
  -----------
  [AMDGPU][True16] Support source DPP operands. (#79025)


  Commit: 376f3be83444901fc4d50570bee492f0f666938f
      https://github.com/llvm/llvm-project/commit/376f3be83444901fc4d50570bee492f0f666938f
  Author: Jie Fu <jiefu at tencent.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/include/llvm/IR/DebugInfo.h

  Log Message:
  -----------
  [DebugInfo] Remove redefinition of 'getDPVAssignmentMarkers' (NFC)

llvm-project/llvm/include/llvm/IR/DebugInfo.h:239:31: error: redefinition of 'getDPVAssignmentMarkers'
inline SmallVector<DPValue *> getDPVAssignmentMarkers(const Instruction *Inst) {
                              ^
llvm-project/llvm/include/llvm/IR/DebugInfo.h:233:31: note: previous definition is here
inline SmallVector<DPValue *> getDPVAssignmentMarkers(const Instruction *Inst) {
                              ^


  Commit: 0ed8194256c6c96875ed9dd102d15ee8a9260fec
      https://github.com/llvm/llvm-project/commit/0ed8194256c6c96875ed9dd102d15ee8a9260fec
  Author: Alexey Lapshin <a.v.lapshin at mail.ru>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/include/llvm/DWARFLinker/AddressesMap.h
    M llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp
    M llvm/lib/DWARFLinker/Parallel/DWARFLinkerCompileUnit.cpp
    M llvm/lib/DWARFLinker/Parallel/DWARFLinkerImpl.cpp
    M llvm/lib/DWARFLinker/Parallel/DependencyTracker.cpp
    M llvm/test/tools/dsymutil/absolute_symbol.test
    M llvm/test/tools/dsymutil/arch-option.test
    M llvm/test/tools/dsymutil/archive-timestamp.test
    M llvm/test/tools/dsymutil/basic-linking.test
    M llvm/test/tools/dsymutil/debug-map-parsing.test
    M llvm/test/tools/dsymutil/dump-symtab.test
    M llvm/test/tools/dsymutil/fat-binary-output.test
    M llvm/test/tools/dsymutil/fat-header.test
    M llvm/test/tools/dsymutil/yaml-object-address-rewrite.test
    M llvm/tools/dsymutil/DwarfLinkerForBinary.cpp
    M llvm/tools/dsymutil/DwarfLinkerForBinary.h
    M llvm/tools/llvm-dwarfutil/DebugInfoLinker.cpp

  Log Message:
  -----------
  [dsymutil] Add --linker parallel to more tests. (#78581)

This patch adds check for parallel linker to tests located in the root
of test/tools/dsymutil.


  Commit: 1715866a94b30f719f8db58591c9adfda6ff0ef6
      https://github.com/llvm/llvm-project/commit/1715866a94b30f719f8db58591c9adfda6ff0ef6
  Author: Yi Wu <43659785+yi-wu-arm at users.noreply.github.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
    M flang/test/Lower/Intrinsics/execute_command_line-optional.f90
    M flang/test/Lower/Intrinsics/execute_command_line.f90

  Log Message:
  -----------
  fix optional wait wrongly treated as false (#78149)


  Commit: fd9b33754198972b835f05ce58d8bb9f0ac8ff7e
      https://github.com/llvm/llvm-project/commit/fd9b33754198972b835f05ce58d8bb9f0ac8ff7e
  Author: tltao <tony.le.tao at gmail.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

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

  Log Message:
  -----------
  [TLI] Remove leftover assert in TargetLibraryInfoImpl initialize (#79056)

Remove unnecessary assert for a sorted StandardNames after
implementation of getLibFunc is changed from binary search to a DenseMap
Lookup in commit 7d950f040e3da66ec83f91b58d8c2220483d6335.

The original getLibFunc binary search implementation is in commit
c740e3f0d1ca9690100160ed2708d97d3c6562f0.

Co-authored-by: Tony Tao <tonytao at ca.ibm.com>


  Commit: d386c40b23798d6b80de5fea61b541dc8cbae36c
      https://github.com/llvm/llvm-project/commit/d386c40b23798d6b80de5fea61b541dc8cbae36c
  Author: NAKAMURA Takumi <geek4civic at gmail.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/test/tools/llvm-cov/Inputs/mcdc-maxbs.o
    M llvm/test/tools/llvm-cov/mcdc-maxbs.test

  Log Message:
  -----------
  test/llvm-cov: Regenerate mcdc-maxbs.o w/o zlib (#78963)


  Commit: bb3a515f95513571886bb900d4ddefb9ea5b4bad
      https://github.com/llvm/llvm-project/commit/bb3a515f95513571886bb900d4ddefb9ea5b4bad
  Author: Ivan Kosarev <ivan.kosarev at amd.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

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

  Log Message:
  -----------
  [AMDGPU][NFC] Refine determining the vdata operand in MUBUF_Load_Pseudo<>.

A follow-up from <https://github.com/llvm/llvm-project/pull/79025>.


  Commit: 9629c73aeb4609f58aa9edb0b87d18dd9e8fecc0
      https://github.com/llvm/llvm-project/commit/9629c73aeb4609f58aa9edb0b87d18dd9e8fecc0
  Author: Dmitri Gribenko <gribozavr at gmail.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M libcxx/include/__config

  Log Message:
  -----------
  [libc++] Remove a duplicated definition of _LIBCPP_NOINLINE (#79114)

I failed to delete the old definition as a part of
https://github.com/llvm/llvm-project/pull/73838.


  Commit: 3bc86bf3bf742506818cf4d94c9227e4afed6f19
      https://github.com/llvm/llvm-project/commit/3bc86bf3bf742506818cf4d94c9227e4afed6f19
  Author: Guillaume Chatelet <gchatelet at google.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M libc/fuzzing/stdlib/strtofloat_fuzz.cpp
    M libc/src/__support/FPUtil/DivisionAndRemainderOperations.h
    M libc/src/__support/FPUtil/FPBits.h
    M libc/src/__support/FPUtil/Hypot.h
    M libc/src/__support/FPUtil/ManipulationFunctions.h
    M libc/src/__support/FPUtil/NormalFloat.h
    M libc/src/__support/FPUtil/dyadic_float.h
    M libc/src/__support/FPUtil/except_value_utils.h
    M libc/src/__support/FPUtil/generic/FMA.h
    M libc/src/__support/FPUtil/generic/FMod.h
    M libc/src/__support/FPUtil/generic/sqrt.h
    M libc/src/__support/FPUtil/generic/sqrt_80_bit_long_double.h
    M libc/src/__support/FPUtil/x86_64/NextAfterLongDouble.h
    M libc/src/__support/common.h
    M libc/src/__support/str_to_float.h
    M libc/src/math/generic/acosf.cpp
    M libc/src/math/generic/acoshf.cpp
    M libc/src/math/generic/asinf.cpp
    M libc/src/math/generic/atanhf.cpp
    M libc/src/math/generic/cosf.cpp
    M libc/src/math/generic/coshf.cpp
    M libc/src/math/generic/exp.cpp
    M libc/src/math/generic/exp10.cpp
    M libc/src/math/generic/exp10f_impl.h
    M libc/src/math/generic/exp2.cpp
    M libc/src/math/generic/exp2f_impl.h
    M libc/src/math/generic/expf.cpp
    M libc/src/math/generic/expm1.cpp
    M libc/src/math/generic/expm1f.cpp
    M libc/src/math/generic/log.cpp
    M libc/src/math/generic/log10.cpp
    M libc/src/math/generic/log10f.cpp
    M libc/src/math/generic/log1p.cpp
    M libc/src/math/generic/log1pf.cpp
    M libc/src/math/generic/log2.cpp
    M libc/src/math/generic/log2f.cpp
    M libc/src/math/generic/logf.cpp
    M libc/src/math/generic/powf.cpp
    M libc/src/math/generic/sincosf.cpp
    M libc/src/math/generic/sinf.cpp
    M libc/src/math/generic/sinhf.cpp
    M libc/src/math/generic/tanf.cpp
    M libc/test/UnitTest/FPMatcher.h
    M libc/test/src/__support/FPUtil/fpbits_test.cpp
    M libc/test/src/math/FDimTest.h
    M libc/test/src/math/FmaTest.h
    M libc/test/src/math/HypotTest.h
    M libc/test/src/math/ILogbTest.h
    M libc/test/src/math/LdExpTest.h
    M libc/test/src/math/NextAfterTest.h
    M libc/test/src/math/RIntTest.h
    M libc/test/src/math/RemQuoTest.h
    M libc/test/src/math/RoundToIntegerTest.h
    M libc/test/src/math/differential_testing/BinaryOpSingleOutputDiff.h
    M libc/test/src/math/differential_testing/SingleInputSingleOutputDiff.h
    M libc/test/src/math/smoke/FDimTest.h
    M libc/test/src/math/smoke/FmaTest.h
    M libc/test/src/math/smoke/HypotTest.h
    M libc/test/src/math/smoke/ILogbTest.h
    M libc/test/src/math/smoke/LdExpTest.h
    M libc/test/src/math/smoke/NextAfterTest.h
    M libc/test/src/math/smoke/NextTowardTest.h
    M libc/test/src/math/smoke/RIntTest.h
    M libc/test/src/math/smoke/RemQuoTest.h
    M libc/test/src/math/smoke/RoundToIntegerTest.h
    M libc/test/src/stdio/sprintf_test.cpp
    M libc/test/src/stdio/sscanf_test.cpp
    M libc/utils/MPFRWrapper/MPFRUtils.cpp

  Log Message:
  -----------
  [libc] Remove unnecessary `FPBits` functions and properties (#79113)

This patch reduces the surface of `FPBits`.


  Commit: 626d0fa30addc6e8fb9af4a80df853af645733b4
      https://github.com/llvm/llvm-project/commit/626d0fa30addc6e8fb9af4a80df853af645733b4
  Author: Stefan Gränitz <stefan.graenitz at gmail.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/tools/llvm-jitlink/llvm-jitlink-executor/llvm-jitlink-executor.cpp

  Log Message:
  -----------
  [llvm-jitlink-executor] Fix unused function warning with LLVM_ENABLE_THREADS=0 (NFC)


  Commit: 8e09f13d679df6c34dd03d8ad6116c832318cab0
      https://github.com/llvm/llvm-project/commit/8e09f13d679df6c34dd03d8ad6116c832318cab0
  Author: Stefan Gränitz <stefan.graenitz at gmail.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/unittests/ExecutionEngine/JITLink/EHFrameSupportTests.cpp
    M llvm/unittests/ExecutionEngine/Orc/CoreAPIsTest.cpp

  Log Message:
  -----------
  [OrcJITTests] Fix warning: suggest explicit braces to avoid ambiguous 'else' (NFC)

Likely related to platform-specific expansion of gtest macros:
```
llvm/unittests/ExecutionEngine/Orc/CoreAPIsTest.cpp:1276:12: warning: suggest explicit
braces to avoid ambiguous 'else' [-Wdangling-else]
```


  Commit: b524eed9259e26b5812e2b55cc05e42fda217486
      https://github.com/llvm/llvm-project/commit/b524eed9259e26b5812e2b55cc05e42fda217486
  Author: Guillaume Chatelet <gchatelet at google.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M libc/fuzzing/stdlib/strtofloat_fuzz.cpp
    M libc/src/__support/FPUtil/DivisionAndRemainderOperations.h
    M libc/src/__support/FPUtil/FPBits.h
    M libc/src/__support/FPUtil/Hypot.h
    M libc/src/__support/FPUtil/ManipulationFunctions.h
    M libc/src/__support/FPUtil/NormalFloat.h
    M libc/src/__support/FPUtil/dyadic_float.h
    M libc/src/__support/FPUtil/except_value_utils.h
    M libc/src/__support/FPUtil/generic/FMA.h
    M libc/src/__support/FPUtil/generic/FMod.h
    M libc/src/__support/FPUtil/generic/sqrt.h
    M libc/src/__support/FPUtil/generic/sqrt_80_bit_long_double.h
    M libc/src/__support/FPUtil/x86_64/NextAfterLongDouble.h
    M libc/src/__support/common.h
    M libc/src/__support/str_to_float.h
    M libc/src/math/generic/acosf.cpp
    M libc/src/math/generic/acoshf.cpp
    M libc/src/math/generic/asinf.cpp
    M libc/src/math/generic/atanhf.cpp
    M libc/src/math/generic/cosf.cpp
    M libc/src/math/generic/coshf.cpp
    M libc/src/math/generic/exp.cpp
    M libc/src/math/generic/exp10.cpp
    M libc/src/math/generic/exp10f_impl.h
    M libc/src/math/generic/exp2.cpp
    M libc/src/math/generic/exp2f_impl.h
    M libc/src/math/generic/expf.cpp
    M libc/src/math/generic/expm1.cpp
    M libc/src/math/generic/expm1f.cpp
    M libc/src/math/generic/log.cpp
    M libc/src/math/generic/log10.cpp
    M libc/src/math/generic/log10f.cpp
    M libc/src/math/generic/log1p.cpp
    M libc/src/math/generic/log1pf.cpp
    M libc/src/math/generic/log2.cpp
    M libc/src/math/generic/log2f.cpp
    M libc/src/math/generic/logf.cpp
    M libc/src/math/generic/powf.cpp
    M libc/src/math/generic/sincosf.cpp
    M libc/src/math/generic/sinf.cpp
    M libc/src/math/generic/sinhf.cpp
    M libc/src/math/generic/tanf.cpp
    M libc/test/UnitTest/FPMatcher.h
    M libc/test/src/__support/FPUtil/fpbits_test.cpp
    M libc/test/src/math/FDimTest.h
    M libc/test/src/math/FmaTest.h
    M libc/test/src/math/HypotTest.h
    M libc/test/src/math/ILogbTest.h
    M libc/test/src/math/LdExpTest.h
    M libc/test/src/math/NextAfterTest.h
    M libc/test/src/math/RIntTest.h
    M libc/test/src/math/RemQuoTest.h
    M libc/test/src/math/RoundToIntegerTest.h
    M libc/test/src/math/differential_testing/BinaryOpSingleOutputDiff.h
    M libc/test/src/math/differential_testing/SingleInputSingleOutputDiff.h
    M libc/test/src/math/smoke/FDimTest.h
    M libc/test/src/math/smoke/FmaTest.h
    M libc/test/src/math/smoke/HypotTest.h
    M libc/test/src/math/smoke/ILogbTest.h
    M libc/test/src/math/smoke/LdExpTest.h
    M libc/test/src/math/smoke/NextAfterTest.h
    M libc/test/src/math/smoke/NextTowardTest.h
    M libc/test/src/math/smoke/RIntTest.h
    M libc/test/src/math/smoke/RemQuoTest.h
    M libc/test/src/math/smoke/RoundToIntegerTest.h
    M libc/test/src/stdio/sprintf_test.cpp
    M libc/test/src/stdio/sscanf_test.cpp
    M libc/utils/MPFRWrapper/MPFRUtils.cpp

  Log Message:
  -----------
  Revert "[libc] Remove unnecessary `FPBits` functions and properties" (#79118)

Reverts llvm/llvm-project#79113
It broke aarch64 build bot machines.


  Commit: 74cb09ff90bff4b91f6c3527fd2715d5d4e77aea
      https://github.com/llvm/llvm-project/commit/74cb09ff90bff4b91f6c3527fd2715d5d4e77aea
  Author: Stephen Tozer <Stephen.Tozer at Sony.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/test/DebugInfo/Generic/assignment-tracking/instcombine/remove-redundant-dbg.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/sroa/remove-redundant-dbg.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/sroa/user-memcpy.ll

  Log Message:
  -----------
  [RemoveDIs][NFC] Disable RemoveDIs tests that are not yet enabled

As part of a recent patch landing, some tests that are not yet ready
to support RemoveDIs were turned on; this patch disables those tests
in RemoveDIs mode.

Fixes buildbot failure:
https://lab.llvm.org/buildbot/#/builders/275/builds/3640


  Commit: 96adf69ba93965956d1ee507d9f75a453d99b666
      https://github.com/llvm/llvm-project/commit/96adf69ba93965956d1ee507d9f75a453d99b666
  Author: AtariDreams <83477269+AtariDreams at users.noreply.github.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp
    M llvm/test/Transforms/InstCombine/shift-logic.ll

  Log Message:
  -----------
  [InstCombine] Remove one-use check if other logic operand is constant (#77973)

By using `match(W, m_ImmConstant())`, we do not need to worry about
one-time use anymore.


  Commit: ea4d22f22568ccce7985032d150e79197694d38f
      https://github.com/llvm/llvm-project/commit/ea4d22f22568ccce7985032d150e79197694d38f
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M clang/include/clang/Lex/Preprocessor.h

  Log Message:
  -----------
  [Lex] Avoid repeated calls to getIdentifierInfo() (NFC)

We're calling it four times in the same function.


  Commit: 1f9de23e94af3ff50f67a3b16be3769919c2e146
      https://github.com/llvm/llvm-project/commit/1f9de23e94af3ff50f67a3b16be3769919c2e146
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/test/Transforms/IndVarSimplify/iv-poison.ll

  Log Message:
  -----------
  [SCEVExp] Add additional tests for hoisting IVs with NSW flags.


  Commit: 13c6f1ea2e7eb15fe492d8fca4fa1857c6f86370
      https://github.com/llvm/llvm-project/commit/13c6f1ea2e7eb15fe492d8fca4fa1857c6f86370
  Author: OCHyams <orlando.hyams at sony.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/lib/IR/DebugInfo.cpp
    M llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp
    M llvm/lib/Transforms/Utils/MemoryTaggingSupport.cpp
    A llvm/test/CodeGen/AArch64/dbg-assign-tag-offset-mix-loc.ll
    A llvm/test/CodeGen/AArch64/dbg-assign-tag-offset.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/declare-to-assign/hwasan.ll
    A llvm/test/Instrumentation/HWAddressSanitizer/dbg-assign-tag-offset.ll

  Log Message:
  -----------
  Reapply [hwasan] Update dbg.assign intrinsics in HWAsan pass #78606

llvm.dbg.assign intrinsics have 2 {value, expression} pairs; fix hwasan to update
the second expression.

Fixes #76545


  Commit: 3112578597c031e6f00c4b126182bd0d8582c729
      https://github.com/llvm/llvm-project/commit/3112578597c031e6f00c4b126182bd0d8582c729
  Author: Dinar Temirbulatov <Dinar.Temirbulatov at arm.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M compiler-rt/cmake/builtin-config-ix.cmake
    M compiler-rt/lib/builtins/CMakeLists.txt
    A compiler-rt/lib/builtins/aarch64/sme-libc-routines.c
    M compiler-rt/test/CMakeLists.txt
    A compiler-rt/test/builtins/Unit/sme-string-test.cpp
    M compiler-rt/test/lit.common.cfg.py
    M compiler-rt/test/lit.common.configured.in
    M compiler-rt/unittests/lit.common.unit.configured.in

  Log Message:
  -----------
  [AArch64][compiler-rt] Add memcpy, memset, memmove, memchr builtins. (#77496)

Add naive implementation of memcpy, memset, memmove, memchr for SME
targets.
Co-authored-by: David Sherwood <david.sherwood at arm.com>


  Commit: a3696196949ad03de2db266eea257d28d1f35905
      https://github.com/llvm/llvm-project/commit/a3696196949ad03de2db266eea257d28d1f35905
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

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

  Log Message:
  -----------
  Fix MSVC "result of 32-bit shift implicitly converted to 64 bits" warning. NFC.


  Commit: 5c7bbe383bf2de0c1de36c7231bbd7f75bfccb1e
      https://github.com/llvm/llvm-project/commit/5c7bbe383bf2de0c1de36c7231bbd7f75bfccb1e
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/i64-to-float.ll
    M llvm/test/CodeGen/X86/packus.ll
    M llvm/test/CodeGen/X86/sext-vsetcc.ll
    M llvm/test/CodeGen/X86/test-shrink-bug.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i8-stride-4.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i8-stride-6.ll
    M llvm/test/CodeGen/X86/vector-shift-ashr-128.ll
    M llvm/test/CodeGen/X86/vector-shift-ashr-256.ll
    M llvm/test/CodeGen/X86/vector-shift-lshr-128.ll
    M llvm/test/CodeGen/X86/vector-shift-lshr-256.ll
    M llvm/test/CodeGen/X86/vector-shift-shl-128.ll
    M llvm/test/CodeGen/X86/vector-shift-shl-256.ll

  Log Message:
  -----------
  [X86] canonicalizeShuffleWithOp - recognise constant vectors with getTargetConstantFromNode

Allows shuffle to fold constant vectors that have already been lowered to constant pool - shuffle combining can then constant fold this.

Noticed while triaging #79100


  Commit: 1652d44d8da83b0a01d5f0b378f10882f5ec8d22
      https://github.com/llvm/llvm-project/commit/1652d44d8da83b0a01d5f0b378f10882f5ec8d22
  Author: Sander de Smalen <sander.desmalen at arm.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M clang/include/clang/AST/Type.h
    M clang/include/clang/Basic/Attr.td
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/lib/AST/TypePrinter.cpp
    M clang/lib/CodeGen/CGCall.cpp
    M clang/lib/CodeGen/CodeGenModule.cpp
    M clang/lib/Sema/SemaChecking.cpp
    M clang/lib/Sema/SemaDecl.cpp
    M clang/lib/Sema/SemaDeclAttr.cpp
    M clang/lib/Sema/SemaType.cpp
    A clang/test/CodeGen/aarch64-sme2-intrinsics/aarch64-sme2-attrs.cpp
    M clang/test/Sema/aarch64-sme-func-attrs-without-target-feature.cpp
    M clang/test/Sema/aarch64-sme-func-attrs.c

  Log Message:
  -----------
  [Clang] Amend SME attributes with support for ZT0. (#77941)

This patch builds on top of #76971 and implements support for:
* __arm_new("zt0")
* __arm_in("zt0")
* __arm_out("zt0")
* __arm_inout("zt0")
* __arm_preserves("zt0")


  Commit: f47c4067fd30ef4318f6ff4d4afafd1ef8a2e262
      https://github.com/llvm/llvm-project/commit/f47c4067fd30ef4318f6ff4d4afafd1ef8a2e262
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    A llvm/test/Transforms/PhaseOrdering/AArch64/indvars-vectorization.ll

  Log Message:
  -----------
  [PhaseOrder] Add test where indvars dropping NSW prevents vectorization.

End-to-end test for https://github.com/llvm/llvm-project/issues/71517,
testing IndVars/LoopVectorize interaction


  Commit: 082f87c9d418eb7b5a731e16b50e6649e387cb5a
      https://github.com/llvm/llvm-project/commit/082f87c9d418eb7b5a731e16b50e6649e387cb5a
  Author: Saiyedul Islam <Saiyedul.Islam at amd.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/Driver/Options.td
    M clang/test/CodeGen/amdgpu-address-spaces.cpp
    M clang/test/CodeGenCUDA/amdgpu-code-object-version.cu
    M clang/test/CodeGenCUDA/amdgpu-workgroup-size.cu
    M clang/test/CodeGenHIP/default-attributes.hip
    M clang/test/CodeGenOpenCL/amdgpu-enqueue-kernel.cl
    M clang/test/CodeGenOpenCL/builtins-amdgcn.cl
    M flang/test/Driver/driver-help-hidden.f90
    M flang/test/Driver/driver-help.f90
    M llvm/docs/AMDGPUUsage.rst
    M llvm/docs/ReleaseNotes.rst
    M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
    M mlir/lib/Dialect/GPU/Transforms/SerializeToHsaco.cpp
    M mlir/lib/Target/LLVMIR/Dialect/ROCDL/ROCDLToLLVMIRTranslation.cpp
    M mlir/test/Target/LLVMIR/rocdl.mlir

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

Also update LIT tests and docs.
For more details, see
https://llvm.org/docs/AMDGPUUsage.html#code-object-v5-metadata

Corresponding llvm-objdump AMDGPU lit tests are updated
in a follow-up PR.


  Commit: 33ec6b3de7f72bc5da6351538f713777c1f8a199
      https://github.com/llvm/llvm-project/commit/33ec6b3de7f72bc5da6351538f713777c1f8a199
  Author: Saiyedul Islam <Saiyedul.Islam at amd.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/test/tools/llvm-objdump/ELF/AMDGPU/kd-gfx10.s
    M llvm/test/tools/llvm-objdump/ELF/AMDGPU/kd-gfx11.s
    M llvm/test/tools/llvm-objdump/ELF/AMDGPU/kd-gfx12.s
    M llvm/test/tools/llvm-objdump/ELF/AMDGPU/kd-gfx90a.s
    M llvm/test/tools/llvm-objdump/ELF/AMDGPU/kd-sgpr.s
    M llvm/test/tools/llvm-objdump/ELF/AMDGPU/kd-vgpr.s
    M llvm/test/tools/llvm-objdump/ELF/AMDGPU/kd-zeroed-gfx10.s

  Log Message:
  -----------
  [AMDGPU] Update llvm-objdump lit tests for COV5 (#79039)

Depends on #79038 which makes cov5 as the default code
object version.


  Commit: 7ec078ed4b7f6e7f44133a2abbc35c74b67787cc
      https://github.com/llvm/llvm-project/commit/7ec078ed4b7f6e7f44133a2abbc35c74b67787cc
  Author: Martin Storsjö <martin at martin.st>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/lib/Support/Windows/Path.inc

  Log Message:
  -----------
  [Support] Avoid a VirtualBox shared folders mmap bug (#78597)

In acd8791c2619f2afc0347c1bff073b32fbffb5d6, a call to FlushFileBuffers
was added to work around a rare kernel bug. In
3b9b4d2156673edda50584086fbfb0d66460b4d2, the scope of that workaround
was limited, for performance reasons, as the flushes are quite
expensive.

On VirtualBox shared folders, closing a memory mapping that has been
written to, also needs to be explicitly flushed, if renaming the output
file before it is closed. Contrary to the kernel bug, this always
happens on such mounts. In these cases, the output ends up as a file of
the right size, but the contents are all zeros.

The sequence to trigger the issue on the VirtualBox Shared Folders is
this, summarized:

    file = CreateFile()
    mapping = CreateFileMapping(file)
    mem = MapViewOfFile()
    CloseHandle(mapping)
    write(mem)
    UnmapViewOfFile(mem)
    SetFileInformationByHandle(file, FileRenameInfo)
    CloseHandle(file)

With this sequence, the output file always ends up with all zeros. See
https://github.com/mstorsjo/llvm-mingw/issues/393 for a full
reproduction example.

To avoid this issue, call FlushFileBuffers() when the file may reside on
a VitualBox shared folder. As the flushes are expensive, only do them
when the output isn't on a local file system.

The issue with VirtualBox shared folders could also be fixed by calling
FlushViewOfFile before UnmapViewOfFile, and doing that could be slightly
less expensive than FlushFileBuffers.

Empirically, the difference between the two is very small though, and as
it's not easy to verify whether switching FlushFileBuffers to
FlushViewOfFile helps with the rare kernel bug, keep using
FlushFileBuffers for both cases, for code simplicity.

This fixes downstream bug
https://github.com/mstorsjo/llvm-mingw/issues/393.


  Commit: e3d73ad58c41b945d9fc5d5fb16ea44850ccf652
      https://github.com/llvm/llvm-project/commit/e3d73ad58c41b945d9fc5d5fb16ea44850ccf652
  Author: Martin Storsjö <martin at martin.st>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M clang/tools/clang-repl/CMakeLists.txt

  Log Message:
  -----------
  [clang-repl] Fix CMake errors when cross compiling

These stem from 4821c90c24d52d4a42990fd9371caedb157bc58b.

When cross compiling, CMAKE_SYSTEM_PROCESSOR is empty, if the
target processor hasn't been set when setting up the cross
compilation. Ideally, when setting up cross compilation with
CMake, the user is supposed to set CMAKE_SYSTEM_PROCESSOR, but
so far, compilation has worked just fine even without it.

Quote the string where CMAKE_SYSTEM_PROCESSOR is expanded, to
avoid argument errors when it expands to an empty string.


  Commit: 5daf674feba0f57b083113ad7ed486cad433a916
      https://github.com/llvm/llvm-project/commit/5daf674feba0f57b083113ad7ed486cad433a916
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/include/llvm/IR/ProfileSummary.h

  Log Message:
  -----------
  ProfileSummary.h - remove unnecessary std::move.

The constructor args are passed by reference since d6790a0a3ce769fc6f37b2577c074d30cb92dbc2

Fixes MSVC static analysis warning


  Commit: 82f424f766be00b037a706a835d0a0663a2680f1
      https://github.com/llvm/llvm-project/commit/82f424f766be00b037a706a835d0a0663a2680f1
  Author: Aaron Ballman <aaron at aaronballman.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M clang/include/clang/Driver/Driver.h
    M clang/include/clang/Driver/Options.td
    M clang/lib/Driver/Driver.cpp
    R clang/test/Driver/modules-print-library-module-manifest-path.cpp

  Log Message:
  -----------
  Revert "[clang][modules] Print library module manifest path. (#76451)"

This reverts commit a301fb11014f9cfdf4ee8cada173c46a7677d9d3.

The changes caused failures like:
https://lab.llvm.org/buildbot/#/builders/91/builds/22189


  Commit: 42b0884238aa3149785ac75fe983e3d6c7715a11
      https://github.com/llvm/llvm-project/commit/42b0884238aa3149785ac75fe983e3d6c7715a11
  Author: Pierre van Houtryve <pierre.vanhoutryve at amd.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp
    M llvm/test/CodeGen/AMDGPU/vcmpx-permlane-hazard.mir

  Log Message:
  -----------
  [AMDGPU] Handle V_PERMLANE64_B32 in fixVcmpxPermlaneHazards (#79125)

Fixes #78856


  Commit: 52665432842fc187eac6404407df1fa6f37444d6
      https://github.com/llvm/llvm-project/commit/52665432842fc187eac6404407df1fa6f37444d6
  Author: Stephen Tozer <stephen.tozer at sony.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

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

  Log Message:
  -----------
  [RemoveDIs][DebugInfo] Handle DPVAssigns in AssignmentTrackingLowering (#78980)

Following on from the previous patch 6aeb7a7,
this patch adds the necessary code to process the DPV equivalents of
llvm.dbg.assign intrinsics. Most of the content of this patch is simply
duplicating existing functionality, using generic code for simple
functions and PointerUnions where storage is required. The most complex
changes are in the places that iterate over instructions, as iterating
over DPValues between instructions is different to iterating over
instructions that may or may not be debug intrinsics; this is most
complex in `AssignmentTrackingLowering::process`, where I've added some
comments to explain the state of the program at each key point depending
on whether we are operating on intrinsics or DPValues.


  Commit: 4318b033bddc64d5654f3e368fddde859ff4d02e
      https://github.com/llvm/llvm-project/commit/4318b033bddc64d5654f3e368fddde859ff4d02e
  Author: Simon Pilgrim <RKSimon at users.noreply.github.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86MCInstLower.cpp
    M llvm/test/CodeGen/X86/2009-06-12-x86_64-tail-call-conv-out-of-sync-bug.ll
    M llvm/test/CodeGen/X86/2011-10-19-widen_vselect.ll
    M llvm/test/CodeGen/X86/addsub-constant-folding.ll
    M llvm/test/CodeGen/X86/any_extend_vector_inreg_of_broadcast.ll
    M llvm/test/CodeGen/X86/any_extend_vector_inreg_of_broadcast_from_memory.ll
    M llvm/test/CodeGen/X86/avx2-fma-fneg-combine.ll
    M llvm/test/CodeGen/X86/avx2-vperm.ll
    M llvm/test/CodeGen/X86/avx512-shuffles/partial_permute.ll
    M llvm/test/CodeGen/X86/bitreverse.ll
    M llvm/test/CodeGen/X86/combine-sdiv.ll
    M llvm/test/CodeGen/X86/combine-subo.ll
    M llvm/test/CodeGen/X86/combine-udiv.ll
    M llvm/test/CodeGen/X86/fma-fneg-combine-2.ll
    M llvm/test/CodeGen/X86/fold-int-pow2-with-fmul-or-fdiv.ll
    M llvm/test/CodeGen/X86/fpclamptosat_vec.ll
    M llvm/test/CodeGen/X86/hoist-and-by-const-from-lshr-in-eqcmp-zero.ll
    M llvm/test/CodeGen/X86/icmp-abs-C-vec.ll
    M llvm/test/CodeGen/X86/insert-into-constant-vector.ll
    M llvm/test/CodeGen/X86/masked_store_trunc.ll
    M llvm/test/CodeGen/X86/matrix-multiply.ll
    M llvm/test/CodeGen/X86/oddshuffles.ll
    M llvm/test/CodeGen/X86/omit-urem-of-power-of-two-or-zero-when-comparing-with-zero.ll
    M llvm/test/CodeGen/X86/peephole-fold-movsd.ll
    M llvm/test/CodeGen/X86/pr63108.ll
    M llvm/test/CodeGen/X86/psubus.ll
    M llvm/test/CodeGen/X86/sext-vsetcc.ll
    M llvm/test/CodeGen/X86/shrink_vmul.ll
    M llvm/test/CodeGen/X86/sink-addsub-of-const.ll
    M llvm/test/CodeGen/X86/slow-pmulld.ll
    M llvm/test/CodeGen/X86/srem-seteq-vec-nonsplat.ll
    M llvm/test/CodeGen/X86/sse2.ll
    M llvm/test/CodeGen/X86/urem-seteq-illegal-types.ll
    M llvm/test/CodeGen/X86/urem-seteq-vec-nonsplat.ll
    M llvm/test/CodeGen/X86/vec_fp_to_int.ll
    M llvm/test/CodeGen/X86/vector-blend.ll
    M llvm/test/CodeGen/X86/vector-fshl-512.ll
    M llvm/test/CodeGen/X86/vector-fshr-128.ll
    M llvm/test/CodeGen/X86/vector-fshr-512.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i16-stride-2.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i16-stride-3.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i16-stride-4.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i16-stride-5.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i16-stride-6.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i16-stride-7.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i32-stride-3.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i32-stride-5.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i32-stride-6.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i32-stride-7.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i64-stride-3.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i64-stride-5.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i64-stride-6.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i64-stride-7.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i8-stride-3.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i8-stride-4.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i8-stride-5.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i8-stride-6.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i8-stride-7.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i16-stride-3.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i16-stride-4.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i16-stride-5.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i16-stride-6.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i16-stride-7.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i16-stride-8.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i32-stride-3.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i32-stride-4.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i32-stride-5.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i32-stride-6.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i32-stride-7.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i32-stride-8.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i64-stride-3.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i64-stride-4.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i64-stride-5.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i64-stride-6.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i64-stride-7.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i8-stride-3.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i8-stride-5.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i8-stride-6.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i8-stride-7.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i8-stride-8.ll
    M llvm/test/CodeGen/X86/vector-mulfix-legalize.ll
    M llvm/test/CodeGen/X86/vector-partial-undef.ll
    M llvm/test/CodeGen/X86/vector-reduce-add-mask.ll
    M llvm/test/CodeGen/X86/vector-replicaton-i1-mask.ll
    M llvm/test/CodeGen/X86/vector-shift-ashr-128.ll
    M llvm/test/CodeGen/X86/vector-shift-ashr-sub128.ll
    M llvm/test/CodeGen/X86/vector-shift-lshr-128.ll
    M llvm/test/CodeGen/X86/vector-shift-lshr-512.ll
    M llvm/test/CodeGen/X86/vector-shift-lshr-sub128.ll
    M llvm/test/CodeGen/X86/vector-shuffle-128-v16.ll
    M llvm/test/CodeGen/X86/vector-shuffle-256-v16.ll
    M llvm/test/CodeGen/X86/vector-shuffle-256-v32.ll
    M llvm/test/CodeGen/X86/vector-shuffle-256-v8.ll
    M llvm/test/CodeGen/X86/vector-shuffle-512-v16.ll
    M llvm/test/CodeGen/X86/vector-shuffle-512-v32.ll
    M llvm/test/CodeGen/X86/vector-shuffle-512-v64.ll
    M llvm/test/CodeGen/X86/vector-shuffle-512-v8.ll
    M llvm/test/CodeGen/X86/vector-shuffle-combining-avx.ll
    M llvm/test/CodeGen/X86/vector-shuffle-combining-avx2.ll
    M llvm/test/CodeGen/X86/vector-shuffle-combining-sse41.ll
    M llvm/test/CodeGen/X86/vector-shuffle-combining-ssse3.ll
    M llvm/test/CodeGen/X86/vector-shuffle-combining.ll
    M llvm/test/CodeGen/X86/vector-shuffle-v1.ll
    M llvm/test/CodeGen/X86/vector-shuffle-v192.ll
    M llvm/test/CodeGen/X86/widen_arith-2.ll
    M llvm/test/CodeGen/X86/widen_arith-4.ll
    M llvm/test/CodeGen/X86/widen_arith-5.ll
    M llvm/test/CodeGen/X86/widen_arith-6.ll
    M llvm/test/CodeGen/X86/x86-interleaved-access.ll
    M llvm/test/CodeGen/X86/zero_extend_vector_inreg.ll
    M llvm/test/CodeGen/X86/zero_extend_vector_inreg_of_broadcast.ll
    M llvm/test/CodeGen/X86/zero_extend_vector_inreg_of_broadcast_from_memory.ll

  Log Message:
  -----------
  [MC][X86] Merge lane/element broadcast comment printers. (#79020)

This is /almost/ NFC - the only annoyance is that for some reason we were using "<C1,C2,..>" for ConstantVector types unlike all other cases - these now use the same "[C1,C2,..]" format as the other constant printers.


  Commit: e7b4ff8119403509da3e7941dcb86b1c6a6d61c5
      https://github.com/llvm/llvm-project/commit/e7b4ff8119403509da3e7941dcb86b1c6a6d61c5
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/test/CodeGen/AArch64/vec3-loads-ext-trunc-stores.ll

  Log Message:
  -----------
  [AArch64] Add vec3 tests with add between load and store.

Extra tests for
  https://github.com/llvm/llvm-project/pull/78637
  https://github.com/llvm/llvm-project/pull/78632


  Commit: e60d780f4a9ac6dc79aebe197d3575e9ea636b7f
      https://github.com/llvm/llvm-project/commit/e60d780f4a9ac6dc79aebe197d3575e9ea636b7f
  Author: Nico Weber <thakis at chromium.org>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/utils/gn/secondary/compiler-rt/test/BUILD.gn

  Log Message:
  -----------
  [gn] port 3ab8d2aac7bc

3ab8d2aac7bc relanded in 3112578597c031, so reland this too.

Might want to set this to True (and add a few source files to
builtins) at some point, but for now heal the bots.


  Commit: 6b02d2f86389d68a0cf2162377c5dda05bd4b68a
      https://github.com/llvm/llvm-project/commit/6b02d2f86389d68a0cf2162377c5dda05bd4b68a
  Author: Guillaume Chatelet <gchatelet at google.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M libc/fuzzing/stdlib/strtofloat_fuzz.cpp
    M libc/src/__support/FPUtil/DivisionAndRemainderOperations.h
    M libc/src/__support/FPUtil/FPBits.h
    M libc/src/__support/FPUtil/Hypot.h
    M libc/src/__support/FPUtil/ManipulationFunctions.h
    M libc/src/__support/FPUtil/NormalFloat.h
    M libc/src/__support/FPUtil/aarch64/FEnvImpl.h
    M libc/src/__support/FPUtil/dyadic_float.h
    M libc/src/__support/FPUtil/except_value_utils.h
    M libc/src/__support/FPUtil/generic/FMA.h
    M libc/src/__support/FPUtil/generic/FMod.h
    M libc/src/__support/FPUtil/generic/sqrt.h
    M libc/src/__support/FPUtil/generic/sqrt_80_bit_long_double.h
    M libc/src/__support/FPUtil/x86_64/NextAfterLongDouble.h
    M libc/src/__support/common.h
    M libc/src/__support/str_to_float.h
    M libc/src/math/generic/acosf.cpp
    M libc/src/math/generic/acoshf.cpp
    M libc/src/math/generic/asinf.cpp
    M libc/src/math/generic/atanhf.cpp
    M libc/src/math/generic/cosf.cpp
    M libc/src/math/generic/coshf.cpp
    M libc/src/math/generic/exp.cpp
    M libc/src/math/generic/exp10.cpp
    M libc/src/math/generic/exp10f_impl.h
    M libc/src/math/generic/exp2.cpp
    M libc/src/math/generic/exp2f_impl.h
    M libc/src/math/generic/expf.cpp
    M libc/src/math/generic/expm1.cpp
    M libc/src/math/generic/expm1f.cpp
    M libc/src/math/generic/log.cpp
    M libc/src/math/generic/log10.cpp
    M libc/src/math/generic/log10f.cpp
    M libc/src/math/generic/log1p.cpp
    M libc/src/math/generic/log1pf.cpp
    M libc/src/math/generic/log2.cpp
    M libc/src/math/generic/log2f.cpp
    M libc/src/math/generic/logf.cpp
    M libc/src/math/generic/powf.cpp
    M libc/src/math/generic/sincosf.cpp
    M libc/src/math/generic/sinf.cpp
    M libc/src/math/generic/sinhf.cpp
    M libc/src/math/generic/tanf.cpp
    M libc/test/UnitTest/FPMatcher.h
    M libc/test/src/__support/FPUtil/fpbits_test.cpp
    M libc/test/src/math/FDimTest.h
    M libc/test/src/math/FmaTest.h
    M libc/test/src/math/HypotTest.h
    M libc/test/src/math/ILogbTest.h
    M libc/test/src/math/LdExpTest.h
    M libc/test/src/math/NextAfterTest.h
    M libc/test/src/math/RIntTest.h
    M libc/test/src/math/RemQuoTest.h
    M libc/test/src/math/RoundToIntegerTest.h
    M libc/test/src/math/differential_testing/BinaryOpSingleOutputDiff.h
    M libc/test/src/math/differential_testing/SingleInputSingleOutputDiff.h
    M libc/test/src/math/smoke/FDimTest.h
    M libc/test/src/math/smoke/FmaTest.h
    M libc/test/src/math/smoke/HypotTest.h
    M libc/test/src/math/smoke/ILogbTest.h
    M libc/test/src/math/smoke/LdExpTest.h
    M libc/test/src/math/smoke/NextAfterTest.h
    M libc/test/src/math/smoke/NextTowardTest.h
    M libc/test/src/math/smoke/RIntTest.h
    M libc/test/src/math/smoke/RemQuoTest.h
    M libc/test/src/math/smoke/RoundToIntegerTest.h
    M libc/test/src/stdio/sprintf_test.cpp
    M libc/test/src/stdio/sscanf_test.cpp
    M libc/utils/MPFRWrapper/MPFRUtils.cpp

  Log Message:
  -----------
  [reland][libc] Remove unnecessary `FPBits` functions and properties (#79128)

- reland #79113
- Fix aarch64 RISC-V build


  Commit: d2398cca6f716bb48f11500faf90f087f5b5f5d1
      https://github.com/llvm/llvm-project/commit/d2398cca6f716bb48f11500faf90f087f5b5f5d1
  Author: Saiyedul Islam <Saiyedul.Islam at amd.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M mlir/lib/Target/LLVMIR/Dialect/ROCDL/ROCDLToLLVMIRTranslation.cpp
    M mlir/test/Target/LLVMIR/rocdl.mlir

  Log Message:
  -----------
  Restore: [mlir][ROCDL] Stop setting amdgpu-implicitarg-num-bytes (#79129)

This patch restores PR#78498


  Commit: 55f12299d890078708eb6d2e069dc117ad244d4d
      https://github.com/llvm/llvm-project/commit/55f12299d890078708eb6d2e069dc117ad244d4d
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/test/Transforms/Attributor/nofpclass-implied-by-fcmp.ll
    M llvm/test/Transforms/InstCombine/and-fcmp.ll
    M llvm/unittests/Analysis/ValueTrackingTest.cpp

  Log Message:
  -----------
  ValueTracking: Recognize fcmp ole/ugt with inf as a class test (#79095)

These were missed and hopefully avoids assertions when
dc3faf0ed0e3f1ea9e435a006167d9649f865da1 is recommitted.


  Commit: 10f3296dd7d74c975f208a8569221dc8f96d1db1
      https://github.com/llvm/llvm-project/commit/10f3296dd7d74c975f208a8569221dc8f96d1db1
  Author: Alexandre Ganea <37383324+aganea at users.noreply.github.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M openmp/cmake/HandleOpenMPOptions.cmake
    M openmp/runtime/src/kmp_affinity.cpp
    M openmp/runtime/src/kmp_barrier.cpp
    M openmp/runtime/src/kmp_io.cpp
    M openmp/runtime/src/kmp_os.h
    M openmp/runtime/src/kmp_settings.cpp
    M openmp/runtime/src/kmp_wait_release.h
    M openmp/runtime/src/z_Windows_NT_util.cpp

  Log Message:
  -----------
  [openmp] Fix warnings when building on Windows with latest MSVC or Clang ToT (#77853)

There were quite a few compilation warnings when building openmp on Windows with
the latest Visual Studios 2022 version 17.8.4. Some other warnings were visible
with the latest Clang at tip. This commit fixes all of them.


  Commit: 16df714e77e8d31619445e5f6d87d89da962eec4
      https://github.com/llvm/llvm-project/commit/16df714e77e8d31619445e5f6d87d89da962eec4
  Author: Danial Klimkin <dklimkin at users.noreply.github.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/test/CodeGen/Thumb/stack_guard_remat.ll

  Log Message:
  -----------
  [test] Update stack_guard_remat.ll (#79139)

Replace cp with a cat. This allows to create a writable file when the
original one is read-only.


  Commit: 94f960925b7f609636fc2ffd83053814d5e45ed1
      https://github.com/llvm/llvm-project/commit/94f960925b7f609636fc2ffd83053814d5e45ed1
  Author: Alexandre Ganea <alex_toresh at yahoo.fr>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M openmp/cmake/HandleOpenMPOptions.cmake
    M openmp/runtime/src/kmp_affinity.cpp
    M openmp/runtime/src/kmp_barrier.cpp
    M openmp/runtime/src/kmp_io.cpp
    M openmp/runtime/src/kmp_os.h
    M openmp/runtime/src/kmp_settings.cpp
    M openmp/runtime/src/kmp_wait_release.h
    M openmp/runtime/src/z_Windows_NT_util.cpp

  Log Message:
  -----------
  Revert 10f3296dd7d74c975f208a8569221dc8f96d1db1 - [openmp] Fix warnings when building on Windows with latest MSVC or Clang ToT (#77853)

It broke the AMDGPU buildbot: https://lab.llvm.org/buildbot/#/builders/193/builds/45378


  Commit: e96242b4e4306ba690f9e2e8f12758da8f63805e
      https://github.com/llvm/llvm-project/commit/e96242b4e4306ba690f9e2e8f12758da8f63805e
  Author: Paul T Robinson <paul.robinson at sony.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M clang/lib/Headers/bmiintrin.h

  Log Message:
  -----------
  [Headers][X86] Add macro descriptions to bmiintrin.h (#79048)

These are largely copy-pasted from the corresponding function
descriptions. Added \see cross-references. Also changed <c> tags to \c.


  Commit: d38c61a13d89ec57b80e5174029b63071c6d7290
      https://github.com/llvm/llvm-project/commit/d38c61a13d89ec57b80e5174029b63071c6d7290
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

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

  Log Message:
  -----------
  [clang][Interp][NFC] Move ToVoid casts to the bottom

So we have all the complex casts together.


  Commit: 654131fab22e71f156d8fa9d37389622f1652438
      https://github.com/llvm/llvm-project/commit/654131fab22e71f156d8fa9d37389622f1652438
  Author: OldWorldOrdr <joey.t.reinhart at gmail.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M lld/test/MachO/link-csu-object.s

  Log Message:
  -----------
  fix test (#79018)

Mistake with #78628 that got caught after being merged


  Commit: 10bd69a4f72a094f4e157ed3e226da426432ef74
      https://github.com/llvm/llvm-project/commit/10bd69a4f72a094f4e157ed3e226da426432ef74
  Author: Anatoly Trosinenko <atrosinenko at accesssoftek.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/include/llvm/CodeGen/MachineOutliner.h
    M llvm/lib/CodeGen/MachineOutliner.cpp
    M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
    M llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp
    M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
    M llvm/lib/Target/X86/X86InstrInfo.cpp

  Log Message:
  -----------
  [MachineOutliner] Refactor iterating over Candidate's instructions (#78972)

Make Candidate's front() and back() functions return references to
MachineInstr and introduce begin() and end() returning iterators, the
same way it is usually done in other container-like classes.

This makes possible to iterate over the instructions contained in
Candidate the same way one can iterate over MachineBasicBlock (note that
begin() and end() return bundled iterators, just like MachineBasicBlock
does, but no instr_begin() and instr_end() are defined yet).


  Commit: 818f13fc00bb29df98d730dca6561014db1d4e26
      https://github.com/llvm/llvm-project/commit/818f13fc00bb29df98d730dca6561014db1d4e26
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.h

  Log Message:
  -----------
  [AMDGPU] Remove getWorkGroupIDSGPR, unused since aa6fb4c45e01


  Commit: 30845e8ab46c416a2e333eb84239e9ec71e92617
      https://github.com/llvm/llvm-project/commit/30845e8ab46c416a2e333eb84239e9ec71e92617
  Author: Stephen Tozer <stephen.tozer at sony.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
    M llvm/test/DebugInfo/assignment-tracking/AArch64/scalable-vectors.ll
    M llvm/test/DebugInfo/assignment-tracking/X86/DSE.ll
    M llvm/test/DebugInfo/assignment-tracking/X86/assignment-tracking-not-enabled.ll
    M llvm/test/DebugInfo/assignment-tracking/X86/coalesce-cfg.ll
    M llvm/test/DebugInfo/assignment-tracking/X86/dbg-phi-produces-undef.ll
    M llvm/test/DebugInfo/assignment-tracking/X86/diamond-1.ll
    M llvm/test/DebugInfo/assignment-tracking/X86/diamond-2.ll
    M llvm/test/DebugInfo/assignment-tracking/X86/diamond-3.ll
    M llvm/test/DebugInfo/assignment-tracking/X86/frag-size-zero.ll
    M llvm/test/DebugInfo/assignment-tracking/X86/global-storage.ll
    M llvm/test/DebugInfo/assignment-tracking/X86/large-type.ll
    M llvm/test/DebugInfo/assignment-tracking/X86/loop-hoist.ll
    M llvm/test/DebugInfo/assignment-tracking/X86/loop-sink.ll
    M llvm/test/DebugInfo/assignment-tracking/X86/loop-unroll.ll
    M llvm/test/DebugInfo/assignment-tracking/X86/lower-offset-expression.ll
    M llvm/test/DebugInfo/assignment-tracking/X86/lower-to-value.ll
    M llvm/test/DebugInfo/assignment-tracking/X86/mem-loc-frag-fill-cfg.ll
    M llvm/test/DebugInfo/assignment-tracking/X86/mem-loc-frag-fill.ll
    M llvm/test/DebugInfo/assignment-tracking/X86/negative-offset.ll
    M llvm/test/DebugInfo/assignment-tracking/X86/nested-loop-frags.ll
    M llvm/test/DebugInfo/assignment-tracking/X86/nested-loop-sroa.ll
    M llvm/test/DebugInfo/assignment-tracking/X86/nested-loop.ll
    M llvm/test/DebugInfo/assignment-tracking/X86/no-redundant-def-after-alloca.ll
    M llvm/test/DebugInfo/assignment-tracking/X86/order-of-defs.ll
    M llvm/test/DebugInfo/assignment-tracking/X86/remove-redundant-defs-bwd-scan.ll
    M llvm/test/DebugInfo/assignment-tracking/X86/remove-redundant-defs-to-prevent-reordering.ll
    M llvm/test/DebugInfo/assignment-tracking/X86/sdag-dangling-dbgassign.ll
    M llvm/test/DebugInfo/assignment-tracking/X86/sdag-ir-salvage-assign.ll
    M llvm/test/DebugInfo/assignment-tracking/X86/sdag-transfer-dbgassign.ll
    M llvm/test/DebugInfo/assignment-tracking/X86/single-memory-location-2.ll
    M llvm/test/DebugInfo/assignment-tracking/X86/single-memory-location.ll
    M llvm/test/DebugInfo/assignment-tracking/X86/split-alloca.ll
    M llvm/test/DebugInfo/assignment-tracking/X86/untagged-store-assignment-extra-checks.ll
    M llvm/test/DebugInfo/assignment-tracking/X86/untagged-store-assignment-outside-variable.ll
    M llvm/test/DebugInfo/assignment-tracking/X86/use-known-value-at-early-mem-def-2.ll
    M llvm/test/DebugInfo/assignment-tracking/X86/use-known-value-at-early-mem-def.ll

  Log Message:
  -----------
  [RemoveDIs][DebugInfo] Handle DPVAssigns in Assignment Tracking excluding lowering (#78982)

This patch adds support for DPVAssigns across all of
AssignmentTrackingAnalysis except for AssignmentTrackingLowering, which
is implemented in a separate patch. This patch includes handling
DPValues in MemLocFragFill, the removal of redundant DPValues as part of
AssignmentTrackingAnalysis (which is different to the version in
`BasicBlockUtils.cpp`), and preventing the DPVAssigns from being
directly emitted in SelectionDAG (just as we don't emit llvm.dbg.assigns
directly, but receive a set of locations from
AssignmentTrackingAnalysis' output).


  Commit: 40bdfd39e394baa08fa67c5943c1b53c66c94bed
      https://github.com/llvm/llvm-project/commit/40bdfd39e394baa08fa67c5943c1b53c66c94bed
  Author: Jeremy Morse <jeremy.morse at sony.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    A llvm/test/tools/llvm-reduce/remove-dp-values.ll
    M llvm/tools/llvm-reduce/CMakeLists.txt
    M llvm/tools/llvm-reduce/DeltaManager.cpp
    A llvm/tools/llvm-reduce/deltas/ReduceDPValues.cpp
    A llvm/tools/llvm-reduce/deltas/ReduceDPValues.h
    M llvm/tools/llvm-reduce/llvm-reduce.cpp

  Log Message:
  -----------
  [llvm-reduce][DebugInfo] Support reducing non-instruction debug-info (#78995)

LLVM will shortly be able to represent variable locations without
encoding information into intrinsics -- they'll be stored as DPValue
objects instead. We'll still need to be able to llvm-reduce these
variable location assignments just like we can with intrinsics today,
thus, here's an llvm-reduce pass that enumerates and reduces the DPValue
objects.

The test for this is paradoxically written with dbg.value intrinsics:
this is because we're changing all the core parts of LLVM to support
this first, with the textual IR format coming last. Until that arrives,
testing the llvm-reduce'ing of DPValues needs the added test using
intrinsics. We should be able to drop the variable assignment using
%alsoloaded using this method. As with the other llvm-reduce tests, I've
got one set of check lines for making the reduction happen as desired,
and the other set to check the final output.


  Commit: 6bbaad1ed402490a648ca184a1f945988789b7a1
      https://github.com/llvm/llvm-project/commit/6bbaad1ed402490a648ca184a1f945988789b7a1
  Author: Lucas Duarte Prates <lucas.prates at arm.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M clang/lib/Basic/Targets/ARM.cpp
    M clang/test/CodeGen/arm-acle-coproc.c
    M clang/test/Driver/arm-cortex-cpus-1.c
    M clang/test/Preprocessor/arm-target-features.c
    M llvm/include/llvm/TargetParser/ARMTargetParser.def
    M llvm/lib/Target/ARM/ARM.td
    M llvm/lib/Target/ARM/ARMSubtarget.h
    M llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp
    M llvm/lib/TargetParser/ARMTargetParser.cpp
    M llvm/lib/TargetParser/Triple.cpp
    M llvm/unittests/TargetParser/TargetParserTest.cpp

  Log Message:
  -----------
  [ARM] Introduce the v9.5-A architecture version to Arm targets (#78994)

This introduces the Armv9.5-A architecture version to the Arm backend,
following on from the existing implementation for AArch64 targets.

Mode details about the Armv9.5-A architecture version can be found at:
* https://community.arm.com/arm-community-blogs/b/architectures-and-processors-blog/posts/arm-a-profile-architecture-developments-2023
* https://developer.arm.com/documentation/ddi0602/2023-09/


  Commit: f2a2f8082bbb16fadf3583f7ac1b85e3e93a9f4c
      https://github.com/llvm/llvm-project/commit/f2a2f8082bbb16fadf3583f7ac1b85e3e93a9f4c
  Author: Tom Stellard <tstellar at redhat.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

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

  Log Message:
  -----------
  [CMake][PGO] Add libunwind to list of stage1 runtimes (#78869)

This fixes the build since 8f90e6937a1fac80873bb2dab5f382c82ba1ba4e
which made libcxxabi use llvm's libunwind by default.

Fixes #78487


  Commit: c173a5bdc422ed457a04b68ec7c136add9eee11c
      https://github.com/llvm/llvm-project/commit/c173a5bdc422ed457a04b68ec7c136add9eee11c
  Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/utils/gn/secondary/llvm/tools/llvm-reduce/BUILD.gn

  Log Message:
  -----------
  [gn build] Port 40bdfd39e394


  Commit: 9edd1c4daeba59b3db3390d449543b71c73f161b
      https://github.com/llvm/llvm-project/commit/9edd1c4daeba59b3db3390d449543b71c73f161b
  Author: Saiyedul Islam <Saiyedul.Islam at amd.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M mlir/lib/Target/LLVM/ROCDL/Target.cpp

  Log Message:
  -----------
  [MLIR][AMDGPU] Switch to code object version 5 (#79144)

As AMDGPU backend has moved to cov5 as default, mlir should also switch
to it.


  Commit: 087172258a50d5bcabe43aff072a20701f0808ef
      https://github.com/llvm/llvm-project/commit/087172258a50d5bcabe43aff072a20701f0808ef
  Author: Jeremy Morse <jeremy.morse at sony.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/include/llvm/CodeGen/GlobalISel/IRTranslator.h
    M llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
    M llvm/test/CodeGen/AArch64/GlobalISel/combine-shift-of-shifted-dbg-value-fallback.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/debug-cpp.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/debug-insts.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-dilocation.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-extract-used-by-dbg.ll
    M llvm/test/CodeGen/X86/GlobalISel/x86-calllowering-dbg-trunc.ll

  Log Message:
  -----------
  [DebugInfo][RemoveDIs] Handle non-instr debug-info in GlobalISel (#75228)

The RemoveDIs project is aiming to eliminate debug intrinsics like
dbg.value and dbg.declare from LLVM, and replace them with DPValue objects
attached to instructions. ISel is one of the "terminals" where that
information needs to be converted into MIR format: this patch implements
support for that in GlobalISel. We aim for the output of LLVM to be
identical with/without RemoveDIs debug-info.

This patch should be NFC, as we're handling the same data about variables
stored in a different format -- it now appears in a DPValue object rather
than as an intrinsic. To that end, I've refactored the handling of
dbg.values into a dedicated function, and call it whenever a dbg.value or a
DPValue is encountered. dbg.declare is handled in a similar way.

Testing: adding the --try-experimental-debuginfo-iterators switch to llc
causes it to try and convert to the "new" debug-info format if it's built
in (LLVM_EXPERIMENTAL_DEBUGINFO_ITERATORS=On), and it'll be covered by our
buildbot. One test has a few extra wildcard-regexes added: this is because
there's some extra data printed about attached debug-info, which is safe to
ignore.


  Commit: 10a3e9138ec9fd9f3f563bb1b6e014f4e3d4ebc9
      https://github.com/llvm/llvm-project/commit/10a3e9138ec9fd9f3f563bb1b6e014f4e3d4ebc9
  Author: Guillaume Chatelet <gchatelet at google.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M libc/src/__support/FPUtil/arm/FEnvImpl.h

  Log Message:
  -----------
  [libc] Fix forward arm32 buildbot (#79151)

Fix forward #79128


  Commit: 5f47687c82e6a9246f9fd852185fbba43385abe3
      https://github.com/llvm/llvm-project/commit/5f47687c82e6a9246f9fd852185fbba43385abe3
  Author: Dinar Temirbulatov <Dinar.Temirbulatov at arm.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M compiler-rt/unittests/lit.common.unit.configured.in

  Log Message:
  -----------
  Remove config.aarch64_sme from compiler-rt/unittests/lit.common.unit.configured.in


  Commit: 291ac25298f797f99d880833c20756d82d779c02
      https://github.com/llvm/llvm-project/commit/291ac25298f797f99d880833c20756d82d779c02
  Author: Qiongsi Wu <274595+qiongsiwu at users.noreply.github.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M compiler-rt/test/profile/instrprof-api.c

  Log Message:
  -----------
  [PGO] Remove calls to `__llvm_orderfile_dump()` in `instrprof-api.c` test (#79150)

https://github.com/llvm/llvm-project/pull/78285 added a test which calls
`__llvm_orderfile_dump()`, a functionality that is not supported on many
platforms. This PR removes the call to `__llvm_orderfile_dump()` to
avoid it failing on unsupported platforms, and turn on the test for
Windows, so we test the rest of the API that are supported.


  Commit: 77e204c7b04f1f516db9a1dd5602e4a853bb0d1c
      https://github.com/llvm/llvm-project/commit/77e204c7b04f1f516db9a1dd5602e4a853bb0d1c
  Author: Kyungwoo Lee <kyulee at meta.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M lld/MachO/Arch/ARM64.cpp
    M lld/MachO/Arch/ARM64Common.h
    M lld/MachO/Arch/ARM64_32.cpp
    M lld/MachO/Arch/X86_64.cpp
    M lld/MachO/Driver.cpp
    M lld/MachO/SyntheticSections.cpp
    M lld/MachO/SyntheticSections.h
    M lld/MachO/Target.h
    A lld/test/MachO/arm64-objc-stubs-dyn.s
    M lld/test/MachO/arm64-objc-stubs.s
    M lld/test/MachO/x86-64-objc-stubs.s

  Log Message:
  -----------
  [lld-macho][arm64] implement -objc_stubs_small (#78665)

This patch implements `-objc_stubs_small` targeting arm64, aiming to
align with ld64's behavior.
1. `-objc_stubs_fast`: As previously implemented, this always uses the
Global Offset Table (GOT) to invoke `objc_msgSend`. The alignment of the
objc stub is 32 bytes.
2. `-objc_stubs_small`: This behavior depends on whether `objc_msgSend`
is defined. If it is, it directly jumps to `objc_msgSend`. If not, it
creates another stub to indirectly jump to `objc_msgSend`, minimizing
the size. The alignment of the objc stub in this case is 4 bytes.


  Commit: dffa8039b10823f67347453a0ef445ee785ed4aa
      https://github.com/llvm/llvm-project/commit/dffa8039b10823f67347453a0ef445ee785ed4aa
  Author: Guillaume Chatelet <gchatelet at google.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M libc/src/__support/FPUtil/DivisionAndRemainderOperations.h
    M libc/src/__support/FPUtil/generic/sqrt.h
    M libc/src/__support/FPUtil/generic/sqrt_80_bit_long_double.h
    M libc/test/UnitTest/FPMatcher.h
    M libc/test/src/__support/FPUtil/fpbits_test.cpp
    M libc/test/src/math/FDimTest.h
    M libc/test/src/math/FmaTest.h
    M libc/test/src/math/HypotTest.h
    M libc/test/src/math/ILogbTest.h
    M libc/test/src/math/LdExpTest.h
    M libc/test/src/math/NextAfterTest.h
    M libc/test/src/math/RIntTest.h
    M libc/test/src/math/RemQuoTest.h
    M libc/test/src/math/RoundToIntegerTest.h
    M libc/test/src/math/smoke/FDimTest.h
    M libc/test/src/math/smoke/FmaTest.h
    M libc/test/src/math/smoke/HypotTest.h
    M libc/test/src/math/smoke/ILogbTest.h
    M libc/test/src/math/smoke/LdExpTest.h
    M libc/test/src/math/smoke/NextAfterTest.h
    M libc/test/src/math/smoke/NextTowardTest.h
    M libc/test/src/math/smoke/RIntTest.h
    M libc/test/src/math/smoke/RemQuoTest.h
    M libc/test/src/math/smoke/RoundToIntegerTest.h

  Log Message:
  -----------
  [libc] Remove specific nan payload in math functions (#79133)


  Commit: 2cff46f8c0aa88222aba776de094c650aa09a33d
      https://github.com/llvm/llvm-project/commit/2cff46f8c0aa88222aba776de094c650aa09a33d
  Author: Schrodinger ZHU Yifan <yifanzhu at rochester.edu>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M libc/test/UnitTest/ErrnoSetterMatcher.h

  Log Message:
  -----------
  [libc][NFC] use builder pattern for ErrnoSetterMatcher (#79153)

ErrnoSetterMatcher::returns can be misleading as it does not initialize
the errno. This is made worse as later on there is a switch statement on
the errno comparator using __builtin_unreachable(). This patch make
ErrnoSetterMatcher::returns give back a builder that is nomially
different from ErrnoSetterMatcher.


  Commit: 8c41e3fcb18c2bf7c369f50473367e9cdd072ecc
      https://github.com/llvm/llvm-project/commit/8c41e3fcb18c2bf7c369f50473367e9cdd072ecc
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    A llvm/test/CodeGen/X86/pr78897.ll

  Log Message:
  -----------
  [X86] Add test case for Issue #78897


  Commit: 179ba129f50aefe6e670800aec7091d958aa6f90
      https://github.com/llvm/llvm-project/commit/179ba129f50aefe6e670800aec7091d958aa6f90
  Author: Alexandros Lamprineas <alexandros.lamprineas at arm.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M clang/test/CodeGen/attr-target-version.c
    M clang/test/Sema/attr-target-clones-aarch64.c
    M clang/test/SemaCXX/attr-target-version.cpp
    M compiler-rt/lib/builtins/cpu_model/aarch64.c
    M compiler-rt/lib/builtins/cpu_model/aarch64/fmv/mrs.inc
    M compiler-rt/lib/builtins/cpu_model/aarch64/hwcap.inc
    M llvm/include/llvm/TargetParser/AArch64TargetParser.h

  Log Message:
  -----------
  [AArch64][FMV] Support feature MOPS in Function Multi Versioning. (#78788)

The patch adds support for FEAT_MOPS (Memory Copy and Memory Set
instructions) in Function Multi Versioning. The bits [19:16] of the
system register ID_AA64ISAR2_EL1 indicate whether FEAT_MOPS is
implemented in AArch64 state. This information is accessible via ELF
hwcaps.


  Commit: 0c02b2e0e0397b5d73dc4c8cc10561f05789ee41
      https://github.com/llvm/llvm-project/commit/0c02b2e0e0397b5d73dc4c8cc10561f05789ee41
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    A llvm/test/Analysis/LoopAccessAnalysis/noalias-scope-decl.ll

  Log Message:
  -----------
  [LAA] Add test for #79137 (NFC)


  Commit: 6ad4ed5f1dd0a8160cd3c7b75e63a0e2f6061b5b
      https://github.com/llvm/llvm-project/commit/6ad4ed5f1dd0a8160cd3c7b75e63a0e2f6061b5b
  Author: Paschalis Mpeis <paschalis.mpeis at arm.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/unittests/Analysis/ReplaceWithVecLibTest.cpp

  Log Message:
  -----------
  [VecLib] Fix: Restore DebugFlag state in ReplaceWithVecLibTest (#78989)

It appears that Google Tests run multiple modules from the same
invocation.
As a result setting `llvm::DebugFlag` in this pass kept it on in
subsequent passes, which is not the expected behavior.


  Commit: 632f44e5edee6395ef26953d41a0e681a121aad3
      https://github.com/llvm/llvm-project/commit/632f44e5edee6395ef26953d41a0e681a121aad3
  Author: Stephen Tozer <stephen.tozer at sony.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/lib/Transforms/Coroutines/CoroFrame.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
    M llvm/lib/Transforms/Scalar/ADCE.cpp
    M llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
    M llvm/lib/Transforms/Utils/CodeExtractor.cpp
    M llvm/lib/Transforms/Utils/InlineFunction.cpp
    M llvm/lib/Transforms/Utils/Local.cpp
    M llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp
    M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
    M llvm/lib/Transforms/Utils/ValueMapper.cpp
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/DebugInfo/Generic/assignment-tracking/adce/no-delete.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/dse/dse-after-memcpyopt-merge.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/dse/shorten-offset.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/dse/shorten.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/inline/id.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/inline/inline-stores.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/inline/shared-alloca.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/inline/use-before-def.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/instcombine/do-not-remove-redundant-dbg.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/instcombine/memset.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/instcombine/sink-store.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/instcombine/sink.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/instcombine/store-new-type.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/instcombine/storemerge.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/licm/merge.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/licm/multi-exit.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/loop-deletion/dead-loop.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/mem2reg/phi.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/mem2reg/single-block-alloca.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/mem2reg/single-store-alloca.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/mem2reg/store-to-part-of-alloca.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/memcpyopt/merge-stores.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/mldst-motion/diamond.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/parse-and-verify/instruction-type.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/parse-and-verify/verify.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/remove-redundant-fwd-scan-linked.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/salvage-value.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/simplifycfg/empty-block.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/simplifycfg/speculated-store.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/slp-vectorizer/merge-scalars.ll
    M llvm/test/Transforms/HotColdSplit/invalid-dbg-assign.ll

  Log Message:
  -----------
  [RemoveDIs][DebugInfo] Handle DPVAssign in most transforms (#78986)

This patch trivially updates various opt passes to handle DPVAssigns. In
all cases, this means some combination of generifying existing code to
handle DPValues and DbgAssignIntrinsics, iterating over DPValues where
previously we did not, or duplicating code for DbgAssignIntrinsics to
the equivalent DPValue function (in inlining and salvageDebugInfo).


  Commit: 6bb7d515c3577afbae9293caa050e02643a19355
      https://github.com/llvm/llvm-project/commit/6bb7d515c3577afbae9293caa050e02643a19355
  Author: Mirko Brkušanin <Mirko.Brkusanin at amd.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/GCNDPPCombine.cpp
    M llvm/test/CodeGen/AMDGPU/dpp_combine_gfx11.mir

  Log Message:
  -----------
  [AMDGPU] Properly check op_sel in GCNDPPCombine (#79122)


  Commit: 4782ac8dd3cfa96e14ad4eff1389bbcfda27240f
      https://github.com/llvm/llvm-project/commit/4782ac8dd3cfa96e14ad4eff1389bbcfda27240f
  Author: Jeremy Morse <jeremy.morse at sony.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/lib/Transforms/IPO/IROutliner.cpp
    M llvm/test/Transforms/IROutliner/legal-debug.ll

  Log Message:
  -----------
  [DebugInfo][RemoveDIs] Use splice in Outliner rather than moveBefore (#79124)

This patch replaces a utility in the outliner that moves the contents of
one basic block into another basic block, with a call to splice instead.
I think it's NFC, however I'd like a second pair of eyes to look at it
just in case.

The reason for doing this is an edge case in the handling of DPValue
objects, the replacement for dbg.values. If there's a variable
assignment "dangling" at the end of a block (which happens when we
delete the terminator), inserting instructions at end() doesn't shift
the DPValue up into the block. We could probably fix this; but it's much
easier to use splice at the only call site that does this.

Patch adds --try-experimental-debuginfo-iterators to a test to exercise
this code path.


  Commit: e1aa5b1fd12d548863cf73c1ec09f98fe89d117b
      https://github.com/llvm/llvm-project/commit/e1aa5b1fd12d548863cf73c1ec09f98fe89d117b
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    M llvm/test/CodeGen/X86/pr78897.ll

  Log Message:
  -----------
  [DAG] visitSCALAR_TO_VECTOR - don't fold scalar_to_vector(bin(extract(x),extract(y)) -> bin(x,y) if extracts have other uses

Fixes #78897 - although the test case still has a number of poor codegen issues (in particular for i686 triples) that will need addressing (combining the nodes in topological order should help).


  Commit: 2856db0d3b691907e055265c10f3ccc9b04f594e
      https://github.com/llvm/llvm-project/commit/2856db0d3b691907e055265c10f3ccc9b04f594e
  Author: Guillaume Chatelet <gchatelet at google.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M libc/src/__support/FPUtil/BasicOperations.h
    M libc/src/__support/FPUtil/DivisionAndRemainderOperations.h
    M libc/src/__support/FPUtil/FPBits.h
    M libc/src/__support/FPUtil/Hypot.h
    M libc/src/__support/FPUtil/ManipulationFunctions.h
    M libc/src/__support/FPUtil/NearestIntegerOperations.h
    M libc/src/__support/FPUtil/NormalFloat.h
    M libc/src/__support/FPUtil/generic/FMA.h
    M libc/src/__support/str_to_float.h
    M libc/src/math/generic/exp.cpp
    M libc/src/math/generic/exp10.cpp
    M libc/src/math/generic/exp2.cpp
    M libc/src/math/generic/expf.cpp
    M libc/src/math/generic/hypotf.cpp
    M libc/src/math/generic/log10f.cpp
    M libc/src/math/generic/log1pf.cpp
    M libc/src/math/generic/log2f.cpp
    M libc/src/math/generic/logf.cpp
    M libc/src/math/generic/range_reduction_fma.h
    M libc/src/stdio/printf_core/float_dec_converter.h
    M libc/test/UnitTest/FPMatcher.h
    M libc/test/src/math/CeilTest.h
    M libc/test/src/math/CopySignTest.h
    M libc/test/src/math/FAbsTest.h
    M libc/test/src/math/FDimTest.h
    M libc/test/src/math/FMaxTest.h
    M libc/test/src/math/FMinTest.h
    M libc/test/src/math/FloorTest.h
    M libc/test/src/math/FmaTest.h
    M libc/test/src/math/FrexpTest.h
    M libc/test/src/math/HypotTest.h
    M libc/test/src/math/ILogbTest.h
    M libc/test/src/math/LdExpTest.h
    M libc/test/src/math/LogbTest.h
    M libc/test/src/math/ModfTest.h
    M libc/test/src/math/NextAfterTest.h
    M libc/test/src/math/RIntTest.h
    M libc/test/src/math/RemQuoTest.h
    M libc/test/src/math/RoundTest.h
    M libc/test/src/math/RoundToIntegerTest.h
    M libc/test/src/math/SqrtTest.h
    M libc/test/src/math/TruncTest.h
    M libc/test/src/math/acosf_test.cpp
    M libc/test/src/math/acoshf_test.cpp
    M libc/test/src/math/asinf_test.cpp
    M libc/test/src/math/asinhf_test.cpp
    M libc/test/src/math/atanf_test.cpp
    M libc/test/src/math/atanhf_test.cpp
    M libc/test/src/math/cos_test.cpp
    M libc/test/src/math/cosf_test.cpp
    M libc/test/src/math/coshf_test.cpp
    M libc/test/src/math/erff_test.cpp
    M libc/test/src/math/exhaustive/exhaustive_test.h
    M libc/test/src/math/exhaustive/hypotf_test.cpp
    M libc/test/src/math/exhaustive/sincosf_test.cpp
    M libc/test/src/math/exp10_test.cpp
    M libc/test/src/math/exp10f_test.cpp
    M libc/test/src/math/exp2_test.cpp
    M libc/test/src/math/exp2f_test.cpp
    M libc/test/src/math/exp_test.cpp
    M libc/test/src/math/expf_test.cpp
    M libc/test/src/math/expm1_test.cpp
    M libc/test/src/math/expm1f_test.cpp
    M libc/test/src/math/log10_test.cpp
    M libc/test/src/math/log10f_test.cpp
    M libc/test/src/math/log1p_test.cpp
    M libc/test/src/math/log1pf_test.cpp
    M libc/test/src/math/log2_test.cpp
    M libc/test/src/math/log2f_test.cpp
    M libc/test/src/math/log_test.cpp
    M libc/test/src/math/logf_test.cpp
    M libc/test/src/math/sin_test.cpp
    M libc/test/src/math/sincosf_test.cpp
    M libc/test/src/math/sinf_test.cpp
    M libc/test/src/math/sinhf_test.cpp
    M libc/test/src/math/smoke/FDimTest.h
    M libc/test/src/math/smoke/FMaxTest.h
    M libc/test/src/math/smoke/FMinTest.h
    M libc/test/src/math/smoke/FmaTest.h
    M libc/test/src/math/smoke/HypotTest.h
    M libc/test/src/math/smoke/ILogbTest.h
    M libc/test/src/math/smoke/LdExpTest.h
    M libc/test/src/math/smoke/LogbTest.h
    M libc/test/src/math/smoke/ModfTest.h
    M libc/test/src/math/smoke/NextAfterTest.h
    M libc/test/src/math/smoke/NextTowardTest.h
    M libc/test/src/math/smoke/RIntTest.h
    M libc/test/src/math/smoke/RemQuoTest.h
    M libc/test/src/math/smoke/RoundToIntegerTest.h
    M libc/test/src/math/smoke/coshf_test.cpp
    M libc/test/src/math/smoke/exp10f_test.cpp
    M libc/test/src/math/smoke/exp2f_test.cpp
    M libc/test/src/math/smoke/expf_test.cpp
    M libc/test/src/math/smoke/expm1f_test.cpp
    M libc/test/src/math/smoke/sinhf_test.cpp
    M libc/test/src/math/tan_test.cpp
    M libc/test/src/math/tanf_test.cpp
    M libc/test/src/math/tanhf_test.cpp
    M libc/test/src/stdlib/atof_test.cpp
    M libc/test/src/stdlib/strtod_test.cpp
    M libc/test/src/stdlib/strtof_test.cpp
    M libc/utils/MPFRWrapper/MPFRUtils.cpp

  Log Message:
  -----------
  [libc][NFC] Remove `FPBits` cast operator (#79142)

The semantics for casting can range from "bitcast" (same representation)
to "different representation", to "type promotion". Here we remove the
cast operator and force usage of `get_val` as the only function to get
the floating point value, making the intent clearer and more consistent.


  Commit: 6cf37dd504d0466bd9f34e29712d60759ef8180f
      https://github.com/llvm/llvm-project/commit/6cf37dd504d0466bd9f34e29712d60759ef8180f
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPU.td
    M llvm/test/CodeGen/AMDGPU/indirect-call-known-callees.ll
    M llvm/test/CodeGen/AMDGPU/lower-work-group-id-intrinsics.ll
    M llvm/test/CodeGen/AMDGPU/workgroup-id-in-arch-sgprs.ll

  Log Message:
  -----------
  [AMDGPU] Enable architected SGPRs for GFX12 (#79160)


  Commit: d3a6a90ae5e80b074293ebfbcb2f15da9c57acc5
      https://github.com/llvm/llvm-project/commit/d3a6a90ae5e80b074293ebfbcb2f15da9c57acc5
  Author: Stephen Tozer <stephen.tozer at sony.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/lib/IR/BasicBlock.cpp
    M llvm/lib/IR/DebugInfo.cpp
    M llvm/test/DebugInfo/Generic/assignment-tracking/declare-to-assign/long-double-x87.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/declare-to-assign/nullptr-declare.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/declare-to-assign/scalable-vector.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/declare-to-assign/set-flag-only-if-modified.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/declare-to-assign/structured-bindings.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/declare-to-assign/var-not-alloca-sized.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/declare-to-assign/vla.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/instcombine/remove-redundant-dbg.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/loop-vectorize/remove-redundant-dbg.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/optnone.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/parse-and-verify/roundtrip.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/remove-redundant.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/sroa/remove-redundant-dbg.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/sroa/user-memcpy.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/track-assignments.ll
    M llvm/test/DebugInfo/assignment-tracking/X86/coalesce-options.ll
    M llvm/test/DebugInfo/assignment-tracking/X86/coalesce-simple.ll
    M llvm/test/DebugInfo/assignment-tracking/X86/remove-undef-fragment.ll
    M llvm/test/DebugInfo/assignment-tracking/X86/untagged-store-frag.ll

  Log Message:
  -----------
  [RemoveDIs][DebugInfo] Enable creation of DPVAssigns, update outstanding AT tests (#79148)

This is the final patch for DPVAssign support, implementing the actual
creation of DPVAssigns and allowing them to be converted along with
dbg.values and dbg.declares. Numerous tests landed in previous patches
will no longer be rotten after this patch lands (previously they would
trivially pass due to DPVAssigns not actually being used), and a further
batch of tests have been added here that require the changes in this
patch before they pass.


  Commit: 1f6f19935c1b4512190f1bc94ebf94f3d2b69911
      https://github.com/llvm/llvm-project/commit/1f6f19935c1b4512190f1bc94ebf94f3d2b69911
  Author: Sander de Smalen <sander.desmalen at arm.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/include/clang/Basic/arm_sme.td
    M clang/include/clang/Basic/arm_sve_sme_incl.td
    M clang/lib/Sema/SemaChecking.cpp
    M clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_ldr_str_zt.c
    M clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_luti2_lane_zt.c
    M clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_luti2_lane_zt_x2.c
    M clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_luti2_lane_zt_x4.c
    M clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_luti4_lane_zt.c
    M clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_luti4_lane_zt_x2.c
    M clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_luti4_lane_zt_x4.c
    M clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_zero_zt.c
    M clang/test/Sema/aarch64-incompat-sm-builtin-calls.c
    M clang/test/Sema/aarch64-sme2-intrinsics/acle_sme2_imm.cpp
    M clang/utils/TableGen/SveEmitter.cpp

  Log Message:
  -----------
  [Clang][AArch64] Add diagnostics for builtins that use ZT0. (#79140)

Similar to what we did for ZA, this patch adds diagnostics to flag when
using a ZT0 builtin in a function that does not have ZT0 state.


  Commit: 5176df55d3afcbecd6e6c42176fa7175897f0016
      https://github.com/llvm/llvm-project/commit/5176df55d3afcbecd6e6c42176fa7175897f0016
  Author: Jeremy Morse <jeremy.morse at sony.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M compiler-rt/test/lit.common.configured.in

  Log Message:
  -----------
  [CompilerRT] Attempt to fix a lit-config issue

This is a follow-up to 3112578597c03 -- it looks like passing the added
cmake flag to pythonize_bool also appends "_PYBOOL" to the flag name, which
this lit config file is missing. This trips up builds such as:

  https://lab.llvm.org/buildbot/#/builders/275/builds/3661
  https://lab.llvm.org/buildbot/#/builders/184/builds/9811

Where COMPILER_RT_HAS_AARCH64_SME ends up expanding to nothing.


  Commit: 55929cd679375d6ee5111edcb881103f57588d0e
      https://github.com/llvm/llvm-project/commit/55929cd679375d6ee5111edcb881103f57588d0e
  Author: Stefan Gränitz <stefan.graenitz at gmail.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/include/llvm/ExecutionEngine/JITLink/aarch32.h
    M llvm/lib/ExecutionEngine/JITLink/ELF_aarch32.cpp
    M llvm/lib/ExecutionEngine/JITLink/aarch32.cpp
    M llvm/test/ExecutionEngine/JITLink/AArch32/ELF_relocations_arm.s
    A llvm/test/ExecutionEngine/JITLink/AArch32/ELF_relocations_armv7plus.s
    M llvm/test/ExecutionEngine/JITLink/AArch32/ELF_relocations_data.s
    R llvm/test/ExecutionEngine/JITLink/AArch32/ELF_relocations_thumb.s
    A llvm/test/ExecutionEngine/JITLink/AArch32/ELF_relocations_thumbv6m.s
    A llvm/test/ExecutionEngine/JITLink/AArch32/ELF_relocations_thumbv7a.s
    A llvm/test/ExecutionEngine/JITLink/AArch32/ELF_relocations_thumbv7m.s
    M llvm/test/ExecutionEngine/JITLink/AArch32/ELF_stubs_arm.s
    M llvm/test/ExecutionEngine/JITLink/AArch32/ELF_stubs_thumb.s

  Log Message:
  -----------
  [JITLink][AArch32] Implement Armv5 ldr-pc stubs and use them for all pre-v7 targets (#79082)

This stub type loads an absolute address directly into the PC register.
It's the simplest and most compatible way to implement a branch
indirection across the entire address space (and probably the slowest as
well). It's the ideal fallback for all targets for which we did not
(yet) implement a more performant solution.


  Commit: 39420279125c8d2fe0a2dae8b8c2e80d0118789c
      https://github.com/llvm/llvm-project/commit/39420279125c8d2fe0a2dae8b8c2e80d0118789c
  Author: Jeremy Morse <jeremy.morse at sony.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/test/Transforms/IROutliner/legal-debug.ll

  Log Message:
  -----------
  [DebugInfo][RemoveDIs] Disable a run-line while investigating a problem

This just reduces coverage for RemoveDIs temporarily, and it's almost
certainly a patch-ordering problem.


  Commit: 8a45cec934697747ac3d3a18e75833e0058fe9a1
      https://github.com/llvm/llvm-project/commit/8a45cec934697747ac3d3a18e75833e0058fe9a1
  Author: James Y Knight <jyknight at google.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/docs/Atomics.rst
    M llvm/docs/LangRef.rst
    M llvm/include/llvm/CodeGen/TargetLowering.h

  Log Message:
  -----------
  [LangRef] adjust IR atomics specification following C++20 model tweaks. (#77263)

C++20 accepted two papers, [P0668](https://wg21.link/P0668) and
[P0982](https://wg21.link/P0982), which changed the atomics memory model
slightly in order to reflect the realities of the existing
implementations.

The rationale for these changes applies as well to the LLVM IR atomics
model. No code changes are expected to be required from this change: it
is primarily a matter of more-correctly-documenting the existing state
of the world.

There's three changes: two of them weaken guarantees, and one
strengthens them:

1. The memory ordering guaranteed by some backends/CPUs when seq_cst
operations are mixed with acquire/release operations on the same
location was weaker than the spec guaranteed. Therefore, the
specification is changed to remove the requirement that seq_cst ordering
is consistent with happens-before, and replaces it with a slightly
weaker requirement of consistency with a new relation named
strongly-happens-before.

2. The rules for a "release sequence" were weakened. Previously, an
acquire synchronizes with an release even if it observes a later
monotonic store from the same thread as the release store. That has now
been removed: now, only read-modify-write operations can extend a
release sequence.

3. The model for a a seq_cst fence is strengthened, such that placing a
seq_cst between monotonic accesses now _is_ sufficient to guarantee
sequential consistency in the model (as it always has been on existing
implementations.)

Note that I've directly referenced the C++ standard's atomics.order
section for the precise semantics of seq_cst, instead of fully
describing them. They are quite complex, and a lot of work has gone into
refining the words in the standard. I'm afraid if I attempt to reiterate
them, I would only introduce errors.


  Commit: 51f9e982ed5c9a1f39c50d0501ab1bcb6ebf5de4
      https://github.com/llvm/llvm-project/commit/51f9e982ed5c9a1f39c50d0501ab1bcb6ebf5de4
  Author: Philip Reames <preames at rivosinc.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

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

  Log Message:
  -----------
  [RISCV] Use early return for select shuffle lowering [nfc]

Minor rework of the fallback case for two argument shuffles in lowerVECTOR_SHUFFLE.  We had some common code which wasn't actually common, and simplified significantly once specialized for whether we had a select or not.


  Commit: 42b28c694ebc8a4ab09ef0b419308d47fc1e21ba
      https://github.com/llvm/llvm-project/commit/42b28c694ebc8a4ab09ef0b419308d47fc1e21ba
  Author: Sam Tebbs <samuel.tebbs at arm.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M clang/include/clang/Basic/arm_sve.td
    M clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_while_x2.c

  Log Message:
  -----------
  [clang] Add missing streaming attributes to SVE builtins (#79134)

This patch adds `IsStreamingCompatible` or `IsStreamingOrSVE2p1` to the
SVE builtins that missed them.


  Commit: 2531a15dfd4eafda21622e3a828a93fc9a27e3b6
      https://github.com/llvm/llvm-project/commit/2531a15dfd4eafda21622e3a828a93fc9a27e3b6
  Author: erichkeane <ekeane at nvidia.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M clang/include/clang/Basic/OpenACCKinds.h
    M clang/include/clang/Parse/Parser.h
    M clang/lib/Parse/ParseOpenACC.cpp
    M clang/test/ParserOpenACC/parse-clauses.c

  Log Message:
  -----------
  [OpenACC] Implement 'device_type' clause parsing

'device_type' takes either an asterisk or a list of impementation
specific identifiers. This patch implements the parsing for it.
Additionally, 'dtype' is an alias for 'device_type', though we're
implementing it as its own clause kind to improve future diagnostics, as
this will allow us to differentiate the spellings.


  Commit: 8ed1291d96eaf230ce289c9e62d28df3851d4372
      https://github.com/llvm/llvm-project/commit/8ed1291d96eaf230ce289c9e62d28df3851d4372
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

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

  Log Message:
  -----------
  [MachineCopyPropagation] Make a SmallVector larger (NFC) (#79106)

This patch makes a SmallVector slightly larger.  We encounter quite a
few instructions with 3 or 4 defs but very few beyond that on X86.

This saves 0.39% of heap allocations during the compilation of a large
preprocessed file, namely X86ISelLowering.cpp, for the X86 target.


  Commit: c5a33befcc328339a84c35f6899ff3f3309399fc
      https://github.com/llvm/llvm-project/commit/c5a33befcc328339a84c35f6899ff3f3309399fc
  Author: Juergen Ributzka <juergen at ributzka.de>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M clang/include/clang/Basic/CodeGenOptions.def
    M clang/lib/Basic/CodeGenOptions.cpp
    M clang/test/ClangScanDeps/strip-codegen-args.m

  Log Message:
  -----------
  [clang][modules] Fix CodeGen options that can affect the AST. (#78816)

`OptimizationLevel` and `OptimizeSize` can affect the generated AST. They indirectly affect the `Optimize` and `OptimizeSize` frontend options, which in turn set predefined macro definitions.

This fixes rdar://121228252.


  Commit: a0f69be26293dfb3b6c65ca65bd68f735f60c5a3
      https://github.com/llvm/llvm-project/commit/a0f69be26293dfb3b6c65ca65bd68f735f60c5a3
  Author: Philip Reames <preames at rivosinc.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

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

  Log Message:
  -----------
  [RISCV] Continue with early return for shuffle lowering [nfc]

Move two cases where we're not actually going to use any of our computed index vectors or mask values above the computation of the same.


  Commit: d360963aaa90710752d684035404db80c3dc1645
      https://github.com/llvm/llvm-project/commit/d360963aaa90710752d684035404db80c3dc1645
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp
    A llvm/test/CodeGen/RISCV/zcb-regalloc-hints.ll

  Log Message:
  -----------
  [RISCV] Add regalloc hints for Zcb instructions. (#78949)

This hints the register allocator to use the same register for source
and destination to enable more compression.


  Commit: 03d362db7463f3451692fa6a80204b35dfe95037
      https://github.com/llvm/llvm-project/commit/03d362db7463f3451692fa6a80204b35dfe95037
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    A libc/docs/gpu/rpc-diagram.svg
    M libc/docs/gpu/rpc.rst
    M libc/docs/gpu/testing.rst

  Log Message:
  -----------
  [libc][Docs] Update the GPU RPC documentation (#79069)

Summary:
This adds some more concrete information on the RPC interface. Hopefully
this is intelligable and provides some useful examples.


  Commit: 3428c28b3d611ac608bb8e22633c65f605a6511e
      https://github.com/llvm/llvm-project/commit/3428c28b3d611ac608bb8e22633c65f605a6511e
  Author: Nico Weber <thakis at chromium.org>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/utils/gn/secondary/compiler-rt/test/BUILD.gn

  Log Message:
  -----------
  [gn] port 5176df55d3a


  Commit: edeaf41e22cc7b1ab9ef30954762f2a08a3c3561
      https://github.com/llvm/llvm-project/commit/edeaf41e22cc7b1ab9ef30954762f2a08a3c3561
  Author: Alina Sbirlea <asbirlea at google.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/include/llvm/Transforms/Scalar/ConstantHoisting.h
    M llvm/lib/Transforms/Scalar/ConstantHoisting.cpp

  Log Message:
  -----------
  [ConstantHoisting] Cache OptForSize. (#79170)

CacheOptForSize to remove quadratic behavior.

For each constant analyzed, ConstantHoising calls
`shouldOptimizeForSize(F)`, which calls `PSI.getTotalCallCount(F)`.
PSI.getTotalCallCount(F) goes through all the instructions in all basic
blocks, and checks if each is a call, to count them up.

This reduces `llc` time for a very large IR from ~10min to under 3min.
Reproducer testcase is much too large to share.


  Commit: 6a7abea47418721616c9dd7a16f5cc3e5a67d49c
      https://github.com/llvm/llvm-project/commit/6a7abea47418721616c9dd7a16f5cc3e5a67d49c
  Author: Stefan Gränitz <stefan.graenitz at gmail.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M clang/lib/Interpreter/Interpreter.cpp

  Log Message:
  -----------
  Revert "[clang-repl] Enable native CPU detection by default (#77491)" (#79178)

Reverting because `clang-repl -Xcc -mcpu=arm1176jzf-s` isn't overwriting
this as I had expected. We need to check whether a specific CPU flag was
given by the user first.

Reverts llvm/llvm-project#77491


  Commit: 15fdc7646ca24506ccb6a59861da8f3b52ab031c
      https://github.com/llvm/llvm-project/commit/15fdc7646ca24506ccb6a59861da8f3b52ab031c
  Author: Alexandre Ganea <alex_toresh at yahoo.fr>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M openmp/cmake/HandleOpenMPOptions.cmake
    M openmp/runtime/src/kmp_affinity.cpp
    M openmp/runtime/src/kmp_barrier.cpp
    M openmp/runtime/src/kmp_io.cpp
    M openmp/runtime/src/kmp_os.h
    M openmp/runtime/src/kmp_settings.cpp
    M openmp/runtime/src/kmp_wait_release.h
    M openmp/runtime/src/z_Windows_NT_util.cpp

  Log Message:
  -----------
  Re-land [openmp] Fix warnings when building on Windows with latest MSVC or Clang ToT (#77853)

The reverts 94f960925b7f609636fc2ffd83053814d5e45ed1 and fixes it.


  Commit: e4f0829d80aabe7d0b80d8ba60828dd0c9774300
      https://github.com/llvm/llvm-project/commit/e4f0829d80aabe7d0b80d8ba60828dd0c9774300
  Author: Stefan Gränitz <stefan.graenitz at gmail.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

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

  Log Message:
  -----------
  [Orc] Let LLJIT default to JITLink for ELF-based ARM targets  (#77313)

The JITLink AArch32 backend reached feature-parity with RuntimeDyld
on ELF-based systems. This patch changes the default JIT-linker in Orc's
LLJIT for these platforms.

This allows us to run clang-repl with JITLink on ARM and use all the
features we had with RuntimeDyld before. All existing tests for
clang-repl are passing.


  Commit: 55a7bb0ff68a97a8ec640f846c40aae19a2d58c0
      https://github.com/llvm/llvm-project/commit/55a7bb0ff68a97a8ec640f846c40aae19a2d58c0
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

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

  Log Message:
  -----------
  [RISCV] Re-format RISCVFeatures.td so it doesn't look like AssemblerPredicate is an operand to Predicate. (#79076)

AssemblerPredicate was almost always indented to the same column as the
first operand to Predicate. But AssemblerPredicate is a separate base
class so should have the same indentation as Predicate.

For the string passed to AssemblePredicate, I aligned it to the other
arguments on the previous if it fit in 80 columns. Otherwise I indented
4 spaces past the start of AssemblerPredicate.

For some vendor extensions I put the 2 classes on new lines instead of
the same line as the def. This gave more room for the strings and was
more consistent with other formatting in that portion of the file.


  Commit: 32073b835674a9e7bc3e1ee9708efb7c58e7394f
      https://github.com/llvm/llvm-project/commit/32073b835674a9e7bc3e1ee9708efb7c58e7394f
  Author: Changpeng Fang <changpeng.fang at amd.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.global.load.tr-w32.ll
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.global.load.tr-w64.ll

  Log Message:
  -----------
  AMDGPU: Do not generate non-temporal hint when Load_Tr intrinsic did not specify it (#79104)

int_amdgcn_global_load_tr did not specify non-temporal load transpose,
thus we should
not genetrate the non-temporal hint for the load. We need to implement
getTgtMemIntrinsic
to create the corresponding MemSDNode. And we don't set the non-temporal
flag because
the intrinsic did not specify it.

NOTE: We need to implement getTgtMemIntrinsic for any memory intrinsics.


  Commit: 7fe951ad8af24d9b7072cbad58d22f2e6cb5da7e
      https://github.com/llvm/llvm-project/commit/7fe951ad8af24d9b7072cbad58d22f2e6cb5da7e
  Author: gulfemsavrun <gulfem at google.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/lib/IR/DebugInfo.cpp
    M llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp
    M llvm/lib/Transforms/Utils/MemoryTaggingSupport.cpp
    R llvm/test/CodeGen/AArch64/dbg-assign-tag-offset-mix-loc.ll
    R llvm/test/CodeGen/AArch64/dbg-assign-tag-offset.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/declare-to-assign/hwasan.ll
    R llvm/test/Instrumentation/HWAddressSanitizer/dbg-assign-tag-offset.ll

  Log Message:
  -----------
  Revert "Reapply [hwasan] Update dbg.assign intrinsics in HWAsan pass … (#79186)

…#78606"

This reverts commit 13c6f1ea2e7eb15fe492d8fca4fa1857c6f86370 because it
causes an assertion in DebugInfoMetadata.cpp:1968 in Clang Linux
builders for Fuchsia.

https://logs.chromium.org/logs/fuchsia/buildbucket/cr-buildbucket/8758111613576762817/+/u/clang/build/stdout


  Commit: 51a11f1c44b7bd7655687471d8c8912afb637efc
      https://github.com/llvm/llvm-project/commit/51a11f1c44b7bd7655687471d8c8912afb637efc
  Author: Tacet <advenam.tacet at trailofbits.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

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

  Log Message:
  -----------
  [ASan][ADT] Don't scribble with ASan (#79066)

With this commit, scribbling under AddressSanitizer (ASan) is disabled to prevent  overwriting poisoned objects (e.g., annotated short strings).
Needed by https://github.com/llvm/llvm-project/pull/79049


  Commit: 5a7d68c8c4b13aea9922c860e56f6c6cdc223d87
      https://github.com/llvm/llvm-project/commit/5a7d68c8c4b13aea9922c860e56f6c6cdc223d87
  Author: Danial Klimkin <dklimkin at users.noreply.github.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M clang/test/SemaCXX/warn-unsafe-buffer-usage-warning-data-invocation.cpp

  Log Message:
  -----------
  [test] Avoid libc dep in Update warn-unsafe-buffer-usage-warning-data… (#79183)

Avoid libc dep in warn-unsafe-buffer-usage-warning-data-invocation.

To keep the test hermetic. This is in line with other existing
declarations in the file that avoid includes.


  Commit: 80fcc9247a166ca056f049fc4662417b2ae157ce
      https://github.com/llvm/llvm-project/commit/80fcc9247a166ca056f049fc4662417b2ae157ce
  Author: Krzysztof Drewniak <Krzysztof.Drewniak at amd.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/GPU/Transforms/Passes.td
    M mlir/include/mlir/Dialect/LLVMIR/ROCDLOps.td

  Log Message:
  -----------
  [mlir][AMDGPU] Actually update the default ABI version, add comments (#79185)

Much confusion occurred earlier today when updating the fallback `int
abi;` in addControlVariables() didn't do anything. THis was because that
that value is the fallback for if the ABI version fails to parse ...
which it always should, because it has a default value that comes from
multiple different places.

This commit updates all the places said default variable can come from,
namely:
1. The ROCDL target attribute definition
2. The ROCDL target attribute's builders
3. The rocdl-attach-target pass's default option values.

With this, the printf test is passing.


  Commit: c416b2efe89c11db593fe8041c366e0cb63d4eeb
      https://github.com/llvm/llvm-project/commit/c416b2efe89c11db593fe8041c366e0cb63d4eeb
  Author: Tacet <advenam.tacet at trailofbits.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/include/llvm/Support/JSON.h

  Log Message:
  -----------
  [ASan][JSON] Unpoison memory before its reuse (#79065)

This commit unpoisons memory before its reuse (with reinterpret_cast).
Required by https://github.com/llvm/llvm-project/pull/79049

Notice that it's a temporary solution to prevent buildbots from failing.
Read FIXME for details.


  Commit: cb528ec5e6331ce207c7b835d7ab963bd5e13af7
      https://github.com/llvm/llvm-project/commit/cb528ec5e6331ce207c7b835d7ab963bd5e13af7
  Author: Tacet <advenam.tacet at trailofbits.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M libcxx/include/string
    A libcxx/test/libcxx/containers/strings/basic.string/asan_deque_integration.pass.cpp
    A libcxx/test/libcxx/containers/strings/basic.string/asan_short.pass.cpp
    A libcxx/test/libcxx/containers/strings/basic.string/asan_vector_integration.pass.cpp
    M libcxx/test/support/asan_testing.h

  Log Message:
  -----------
  [ASan][libc++] Turn on ASan annotations for short strings (#79049)

Originally merged here: https://github.com/llvm/llvm-project/pull/75882
Reverted here: https://github.com/llvm/llvm-project/pull/78627

Reverted due to failing buildbots. The problem was not caused by the
annotations code, but by code in the `UniqueFunctionBase` class and in
the `JSON.h` file. That code caused the program to write to memory that
was already being used by string objects, which resulted in an ASan
error.

Fixes are implemented in:
- https://github.com/llvm/llvm-project/pull/79065
- https://github.com/llvm/llvm-project/pull/79066

Problematic code from `UniqueFunctionBase` for example:
```cpp
#ifndef NDEBUG
    // In debug builds, we also scribble across the rest of the storage.
    memset(RHS.getInlineStorage(), 0xAD, InlineStorageSize);
#endif
```

---

Original description:

This commit turns on ASan annotations in `std::basic_string` for short
stings (SSO case).

Originally suggested here: https://reviews.llvm.org/D147680

String annotations added here:
https://github.com/llvm/llvm-project/pull/72677

Requires to pass CI without fails:
- https://github.com/llvm/llvm-project/pull/75845
- https://github.com/llvm/llvm-project/pull/75858

Annotating `std::basic_string` with default allocator is implemented in
https://github.com/llvm/llvm-project/pull/72677 but annotations for
short strings (SSO - Short String Optimization) are turned off there.
This commit turns them on. This also removes
`_LIBCPP_SHORT_STRING_ANNOTATIONS_ALLOWED`, because we do not plan to
support turning on and off short string annotations.

Support in ASan API exists since
https://github.com/llvm/llvm-project/commit/dd1b7b797a116eed588fd752fbe61d34deeb24e4.
You can turn off annotations for a specific allocator based on changes
from
https://github.com/llvm/llvm-project/commit/2fa1bec7a20bb23f2e6620085adb257dafaa3be0.

This PR is a part of a series of patches extending AddressSanitizer C++
container overflow detection capabilities by adding annotations, similar
to those existing in `std::vector` and `std::deque` collections. These
enhancements empower ASan to effectively detect instances where the
instrumented program attempts to access memory within a collection's
internal allocation that remains unused. This includes cases where
access occurs before or after the stored elements in `std::deque`, or
between the `std::basic_string`'s size (including the null terminator)
and capacity bounds.

The introduction of these annotations was spurred by a real-world
software bug discovered by Trail of Bits, involving an out-of-bounds
memory access during the comparison of two strings using the
`std::equals` function. This function was taking iterators
(`iter1_begin`, `iter1_end`, `iter2_begin`) to perform the comparison,
using a custom comparison function. When the `iter1` object exceeded the
length of `iter2`, an out-of-bounds read could occur on the `iter2`
object. Container sanitization, upon enabling these annotations, would
effectively identify and flag this potential vulnerability.

If you have any questions, please email:

    advenam.tacet at trailofbits.com
    disconnect3d at trailofbits.com


  Commit: 0cf20c2971375ea200035f2e99bd81bd00f5f27d
      https://github.com/llvm/llvm-project/commit/0cf20c2971375ea200035f2e99bd81bd00f5f27d
  Author: Schrodinger ZHU Yifan <yifanzhu at rochester.edu>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M libc/src/unistd/linux/CMakeLists.txt
    M libc/src/unistd/linux/sysconf.cpp

  Log Message:
  -----------
  [libc] fix sysconf (#79159)

Apply previously discussed fix for `sysconf`


  Commit: bb8a8770e203ba027d141cd1200e93809ea66c8f
      https://github.com/llvm/llvm-project/commit/bb8a8770e203ba027d141cd1200e93809ea66c8f
  Author: Philip Reames <preames at rivosinc.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

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

  Log Message:
  -----------
  [RISCV] Exploit register boundaries when lowering shuffle with exact vlen (#79072)

If we have a shuffle which is larger than m1, we may be able to split it
into a series of individual m1 shuffles. This patch starts with the
subcase where the mask allows a 1-to-1 mapping from source register to
destination register - each with a possible permutation of their own. We
can potentially extend this later, thought in practice this seems to
already catch a number of the most interesting cases.


  Commit: 50d33c62ad8786400a712b01150f6decaf070782
      https://github.com/llvm/llvm-project/commit/50d33c62ad8786400a712b01150f6decaf070782
  Author: Martin Storsjö <martin at martin.st>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M lld/COFF/Writer.cpp
    A lld/test/COFF/cfguard-weak-undef.s

  Log Message:
  -----------
  [LLD] [COFF] Fix crashes for cfguard with undefined weak symbols (#79063)

When marking symbols as having their address taken, we can have the
sitaution where we have the address taken of a weak symbol. If there's
no strong definition of the symbol, the symbol ends up as an absolute
symbol with the value null. In those cases, we don't have any Chunk.
Skip such symbols from the cfguard tables.

This fixes https://github.com/llvm/llvm-project/issues/78619.


  Commit: bdc41106ee48dce59c500c9a3957af947f30c8c3
      https://github.com/llvm/llvm-project/commit/bdc41106ee48dce59c500c9a3957af947f30c8c3
  Author: Philip Reames <preames at rivosinc.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-interleave.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-int-interleave.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-int-shuffles.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-interleaved-access.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-shuffle-transpose.ll

  Log Message:
  -----------
  [RISCV] Recurse on first operand of two operand shuffles (#79180)

This is the first step towards an alternate shuffle lowering design for
the general two vector argument case. The goal is to leverage the
existing lowering for single vector permutes to avoid as many of the
vrgathers as required - even if we do need the other.

This patch handles only the first argument, and is arguably a slightly
weird half-step. However, the test changes from the full two argument
recurse patch are a lot harder to reason about. Taking this half step
gives much more easily reviewable changes, and is thus worthwhile. I
intend to post the patch for the second argument once this has landed.


  Commit: f05dd29ceea29080d18ec31414a7ae2edf86c39d
      https://github.com/llvm/llvm-project/commit/f05dd29ceea29080d18ec31414a7ae2edf86c39d
  Author: Philip Reames <preames at rivosinc.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

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

  Log Message:
  -----------
  [RISCV] Regenerate autogen test to remove spurious diff


  Commit: 3c20e25b0c51c67e35d028ba0d1d5f1dd5e206bb
      https://github.com/llvm/llvm-project/commit/3c20e25b0c51c67e35d028ba0d1d5f1dd5e206bb
  Author: AtariDreams <83477269+AtariDreams at users.noreply.github.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M clang/test/Analysis/malloc.mm
    M clang/test/Analysis/uninit-vals.m
    M clang/test/CodeGen/alloc-size.c
    M compiler-rt/lib/profile/InstrProfilingFile.c
    M compiler-rt/test/tsan/java_finalizer2.cpp

  Log Message:
  -----------
  [NFC] Size and element numbers are often swapped when calling calloc (#79081)

gcc-14 will now throw a warning if size and elements are swapped.


  Commit: 17bc4497847eb0388bedc5c8483bf8a1cbdd3a42
      https://github.com/llvm/llvm-project/commit/17bc4497847eb0388bedc5c8483bf8a1cbdd3a42
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M lld/test/ELF/lto/thin-archivecollision.ll

  Log Message:
  -----------
  [ELF] Improve thin-archivecollision.ll


  Commit: f6ced3579a8c7fe1ef93e25ecf521629afa928dd
      https://github.com/llvm/llvm-project/commit/f6ced3579a8c7fe1ef93e25ecf521629afa928dd
  Author: Tom Stellard <tstellar at redhat.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M clang/cmake/caches/Release.cmake
    M llvm/utils/release/test-release.sh

  Log Message:
  -----------
  [CMake][Release] Add option for enabling PGO to release cache file. (#78823)

The option is LLVM_RELEASE_ENABLE_PGO and it's turned on by default.

---------

Co-authored-by: Petr Hosek <phosek at google.com>


  Commit: f7669ba3d9443bc95dd63fa25beea13e6265fdc5
      https://github.com/llvm/llvm-project/commit/f7669ba3d9443bc95dd63fa25beea13e6265fdc5
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M lld/ELF/LTO.cpp
    M lld/ELF/LTO.h
    M lld/test/ELF/common-archive-lookup.s
    M lld/test/ELF/lto/cache.ll
    M lld/test/ELF/lto/comdat-mixed-archive.test
    M lld/test/ELF/lto/emit-asm.ll
    M lld/test/ELF/lto/exclude-libs-libcall.ll
    M lld/test/ELF/lto/obj-path.ll
    M lld/test/ELF/lto/parallel-internalize.ll
    M lld/test/ELF/lto/parallel.ll
    M lld/test/ELF/lto/pseudo-probe-lto.ll
    M lld/test/ELF/lto/save-temps-eq.ll
    M lld/test/ELF/lto/thin-archivecollision.ll
    M lld/test/ELF/lto/thinlto.ll

  Log Message:
  -----------
  [ELF] --save-temps --lto-emit-asm: derive ELF/asm file names from bitcode file names

Port COFF's https://reviews.llvm.org/D78221 and
https://reviews.llvm.org/D137217 to ELF. For the in-process ThinLTO
link, `ld.lld --save-temps a.o d/b.o -o out` will create
ELF relocatable files `out.lto.a.o`/`d/out.lto.b.o` instead of
`out1.lto.o`/`out2.lto.o`. Deriving the LTO-generated relocatable file
name from bitcode file names helps debugging.

The relocatable file name from the first regular LTO partition does not
change: `out.lto.o`. The second, if present due to `--lto-partition=`,
changes from `out1.lto.o` to `lto.1.o`.

For an archive member, e.g. `d/a.a(coll.o at 8)`,
the relocatable file is `d/out.lto.a.a(coll.o at 8).o`.

`--lto-emit-asm` file names are changed similarly. `--lto-emit-asm -o
out` now creates `out.lto.s` instead of `out`, therefore the
`--lto-emit-asm -o -` idiom no longer works. However, I think this new
behavior (which matches COFF) is better since keeping or removing
`--lto-emit-asm` will dump different files, instead of overwriting the
`-o` output file from an executable/shared object to an assembly file.

Reviewers: rnk, igorkudrin, xur-llvm, teresajohnson, ZequanWu

Reviewed By: teresajohnson

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


  Commit: 7ca8feb1b89dfe62c9c3a06aa0585adbcd019eff
      https://github.com/llvm/llvm-project/commit/7ca8feb1b89dfe62c9c3a06aa0585adbcd019eff
  Author: Alex Langford <alangford at apple.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M lldb/include/lldb/API/LLDB.h

  Log Message:
  -----------
  [lldb] Include SBFormat.h in LLDB.h (#79194)

This was likely overlooked when SBFormat was added.


  Commit: 9122d19de4a237ededfd25c120bcb6e5efb22b1c
      https://github.com/llvm/llvm-project/commit/9122d19de4a237ededfd25c120bcb6e5efb22b1c
  Author: Roland McGrath <mcgrathr at google.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M libc/src/__support/FPUtil/arm/FEnvImpl.h

  Log Message:
  -----------
  Revert "[libc] Fix forward arm32 buildbot" (#79201)

Reverts llvm/llvm-project#79151, necessary to revert #79128, which broke
all production builds and landed without review.


  Commit: f1abe78e6b6adadb9fd9d6a239f40317c5d56f94
      https://github.com/llvm/llvm-project/commit/f1abe78e6b6adadb9fd9d6a239f40317c5d56f94
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

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

  Log Message:
  -----------
  [RISCV] Move FeatureStdExtH in RISCVFeatures.td. NFC

It was accidentally in the middle of the floating point extensions
after the recent reordering.


  Commit: d86a6eacf661f2bf05ea486b7a04b0cc1f97919c
      https://github.com/llvm/llvm-project/commit/d86a6eacf661f2bf05ea486b7a04b0cc1f97919c
  Author: lntue <35648136+lntue at users.noreply.github.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

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

  Log Message:
  -----------
  [libc] Fix aliasing function name got accidentally deleted in #79128. (#79203)


  Commit: eabddf22e20bc5fd62edda677056e1d635f8e7f4
      https://github.com/llvm/llvm-project/commit/eabddf22e20bc5fd62edda677056e1d635f8e7f4
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M .github/workflows/libcxx-build-and-test.yaml

  Log Message:
  -----------
  [libc++] Run the nightly libc++ build at 03:00 Eastern for real (#79184)

The nightly libc++ build was incorrectly set up to build at 22:00
Eastern when it intended to run at 03:00 Eastern. This patch fixes that.


  Commit: d813af73f70f6b2fd41621d640cc35e595b9da4c
      https://github.com/llvm/llvm-project/commit/d813af73f70f6b2fd41621d640cc35e595b9da4c
  Author: Ben Hamilton (Ben Gertzfield) <benhamilton at google.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    A clang/test/Format/dump-config-objc-stdin.m
    M clang/tools/clang-format/ClangFormat.cpp
    M clang/unittests/Format/FormatTestObjC.cpp

  Log Message:
  -----------
  [Format] Fix detection of languages when reading from stdin (#79051)

The code cleanup in #74794 accidentally broke detection of languages by
reading file content from stdin, e.g. via `clang-format -dump-config - <
/path/to/filename`.

This PR adds unit and integration tests to reproduce the issue and adds
a fix.

Fixes: #79023


  Commit: b504e97d921d72cc4407ab909ec371d1af957ab7
      https://github.com/llvm/llvm-project/commit/b504e97d921d72cc4407ab909ec371d1af957ab7
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/test/Transforms/IndVarSimplify/iv-poison.ll

  Log Message:
  -----------
  [IndVars] Add NUW variants to iv-poison.ll and variants with extra uses.


  Commit: bb3e0d7fc34899f22cbaea311982098bae3de061
      https://github.com/llvm/llvm-project/commit/bb3e0d7fc34899f22cbaea311982098bae3de061
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    A llvm/test/Transforms/SLPVectorizer/SystemZ/minbitwidth-non-vector-root.ll

  Log Message:
  -----------
  [SLP]Fix PR79193: skip analysis of gather nodes for minbitwidth.

No need in trying to analyze small graphs with gather node only to avoid
crash.


  Commit: 16343f0db286a5d2aaf9494dd402cda0d088d0a1
      https://github.com/llvm/llvm-project/commit/16343f0db286a5d2aaf9494dd402cda0d088d0a1
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M lld/test/ELF/lto/defsym.ll

  Log Message:
  -----------
  [ELF,test] Fix defsym.ll


  Commit: 4fcd7cf22deff4a63d2bac12c909be7266f8b353
      https://github.com/llvm/llvm-project/commit/4fcd7cf22deff4a63d2bac12c909be7266f8b353
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M lld/test/ELF/lto/defsym.ll

  Log Message:
  -----------
  [ELF,test] Actually fix defsym.ll


  Commit: 4beea6b195585e4d9e196a9a2b0bb79a9c040788
      https://github.com/llvm/llvm-project/commit/4beea6b195585e4d9e196a9a2b0bb79a9c040788
  Author: RolandF77 <55763885+RolandF77 at users.noreply.github.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp
    M llvm/test/Analysis/CostModel/PowerPC/load_store.ll

  Log Message:
  -----------
  [PowerPC] lower partial vector store cost (#78358)

There are matching store opcodes (stfd, stxsiwx) for the load opcodes
that make 32-bit and 64-bit vector operations cheap with VSX, so stores
should also be cheap.


  Commit: 4ad4c8e90e120687e768475fecb8cc03d422b3a1
      https://github.com/llvm/llvm-project/commit/4ad4c8e90e120687e768475fecb8cc03d422b3a1
  Author: Juergen Ributzka <juergen at ributzka.de>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M clang/lib/Driver/ToolChains/Darwin.cpp
    M clang/lib/Driver/ToolChains/Darwin.h
    M clang/lib/Driver/ToolChains/MSVC.cpp
    M clang/lib/Driver/ToolChains/MSVC.h
    M clang/lib/Driver/ToolChains/MinGW.cpp
    M clang/lib/Driver/ToolChains/MinGW.h

  Log Message:
  -----------
  [clang] Use LazyDetector for all toolchains. (#79073)

Use the LazyDetector also for the remaining toolchains to avoid unnecessarily checking for the Cuda and Rocm installations.

This fixes rdar://121397534.


  Commit: 3a9ff32354a95305c523ab3b13bf3684854d1327
      https://github.com/llvm/llvm-project/commit/3a9ff32354a95305c523ab3b13bf3684854d1327
  Author: lntue <35648136+lntue at users.noreply.github.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M libc/src/__support/FPUtil/arm/FEnvImpl.h

  Log Message:
  -----------
  [libc] Fix implicit conversion in FEnvImpl for arm32 targets. (#79210)


  Commit: 2b8649fbecdc300cde1032d739484690f75a27ba
      https://github.com/llvm/llvm-project/commit/2b8649fbecdc300cde1032d739484690f75a27ba
  Author: William Junda Huang <williamjhuang at google.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/docs/CommandGuide/llvm-profdata.rst
    M llvm/include/llvm/ProfileData/SampleProf.h
    A llvm/test/tools/llvm-profdata/merge-filter.test
    M llvm/tools/llvm-profdata/llvm-profdata.cpp

  Log Message:
  -----------
  Added feature in llvm-profdata merge to filter functions from the profile (#78378)

`--function=<regex>` Include functions matching regex in the output
`--no-function=<regex>` Exclude functions matching regex from the output

If both are specified, `--no-function` has a higher precedence if a
function name matches both filters


  Commit: 9261ab708e37c2d6499ac063045f816d25a5919c
      https://github.com/llvm/llvm-project/commit/9261ab708e37c2d6499ac063045f816d25a5919c
  Author: Kunwar Grover <groverkss at gmail.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M mlir/lib/Target/LLVMIR/ModuleTranslation.cpp
    M mlir/test/Target/LLVMIR/llvmir-invalid.mlir
    M mlir/test/Target/LLVMIR/llvmir.mlir

  Log Message:
  -----------
  [mlir][Target] Teach dense_resource conversion to LLVMIR Target (#78958)

This patch adds support for translating dense_resource attributes to
LLVMIR Target.
The support added is similar to how DenseElementsAttr is handled, except
we
don't need to handle splats.

Another possible way of doing this is adding iteration on
dense_resource, but that is
non-trivial as DenseResourceAttr is not meant to be something you should
directly
access. It has subclasses which you are supposed to use to iterate on
it.


  Commit: 6c98c5bd99b4c71a7895337cd4e437e023c2ec7a
      https://github.com/llvm/llvm-project/commit/6c98c5bd99b4c71a7895337cd4e437e023c2ec7a
  Author: Alex Langford <alangford at apple.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M lldb/include/lldb/Breakpoint/BreakpointIDList.h
    M lldb/source/Breakpoint/BreakpointIDList.cpp

  Log Message:
  -----------
  [lldb][NFCI] Remove unused method BreakpointIDList::AddBreakpointID(const char *) (#79189)

This overload is completely unused.


  Commit: 2227e50c618ecc6f83e8c69286a418ee04750361
      https://github.com/llvm/llvm-project/commit/2227e50c618ecc6f83e8c69286a418ee04750361
  Author: Billy Laws <blaws05 at gmail.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

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

  Log Message:
  -----------
  [Preprocessor][test] Test ARM64EC definitions (#78916)


  Commit: a829f109ffd518230df5191c64aa427603cf10d9
      https://github.com/llvm/llvm-project/commit/a829f109ffd518230df5191c64aa427603cf10d9
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M libcxx/docs/ReleaseProcedure.rst

  Log Message:
  -----------
  [libc++] Fix outdated release procedure for release notes


  Commit: 9d476e1e1a18af390e3455a6622ee67a69c64103
      https://github.com/llvm/llvm-project/commit/9d476e1e1a18af390e3455a6622ee67a69c64103
  Author: Paul Kirth <paulkirth at google.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M clang/lib/CodeGen/BackendUtil.cpp
    M clang/lib/Driver/ToolChains/Clang.cpp
    M clang/lib/Frontend/CompilerInvocation.cpp
    M clang/test/CodeGen/fat-lto-objects.c
    M clang/test/Driver/fat-lto-objects.c
    M llvm/docs/FatLTO.rst
    M llvm/include/llvm/Passes/PassBuilder.h
    M llvm/include/llvm/Transforms/IPO/EmbedBitcodePass.h
    M llvm/lib/Passes/PassBuilder.cpp
    M llvm/lib/Passes/PassBuilderPipelines.cpp
    M llvm/lib/Passes/PassRegistry.def
    M llvm/lib/Transforms/IPO/EmbedBitcodePass.cpp
    M llvm/test/CodeGen/X86/fat-lto-section.ll
    M llvm/test/Transforms/EmbedBitcode/embed.ll

  Log Message:
  -----------
  [clang][FatLTO] Avoid UnifiedLTO until it can support WPD/CFI (#79061)

Currently, the UnifiedLTO pipeline seems to have trouble with several
LTO features, like SplitLTO units, which means we cannot use important
optimizations like Whole Program Devirtualization or security hardening
instrumentation like CFI.

This patch reverts FatLTO to using distinct pipelines for Full LTO and
ThinLTO. It still avoids module cloning, since that was error prone.


  Commit: 729657d6e15d0455557f35485deb87313ccdde10
      https://github.com/llvm/llvm-project/commit/729657d6e15d0455557f35485deb87313ccdde10
  Author: Utkarsh Saxena <usx at google.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M clang-tools-extra/clang-tidy/misc/CoroutineHostileRAIICheck.cpp
    M clang-tools-extra/test/clang-tidy/checkers/misc/coroutine-hostile-raii.cpp

  Log Message:
  -----------
  [misc-coroutine-hostile-raii] Use getOperand instead of getCommonExpr. (#79206)

We were previously allowlisting awaitable types returned by
`await_transform` instead of the type of the operand of the `co_await`
expression.

This previously used to give false positives and not respect the
`AllowedAwaitablesList` flag when `await_transform` is used. See added
test cases for such examples.


  Commit: dc410f94f602390a65c832cf348b9ee6556b1809
      https://github.com/llvm/llvm-project/commit/dc410f94f602390a65c832cf348b9ee6556b1809
  Author: Shilei Tian <i at tianshilei.me>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M clang/include/clang/Driver/Types.def
    M clang/lib/Driver/Types.cpp
    A clang/test/Driver/opencl_aot_save_temps.cl

  Log Message:
  -----------
  [Clang][Driver] Fix `--save-temps` for OpenCL AoT compilation (#78333)

We can directly call `clang -c -x cl -target amdgcn -mcpu=gfx90a test.cl
-o test.o`
to compile an OpenCL kernel file. However, when `--save-temps` is
enabled, it doesn't
work because the preprocessed file (`.i` file) is taken as C source file
when it
is fed to the front end, thus causing compilation error because those
OpenCL keywords
can't be recognized. This patch fixes the issue.


  Commit: 1a300d6da3f3d10e02d9580f8f3f2080bba8adf9
      https://github.com/llvm/llvm-project/commit/1a300d6da3f3d10e02d9580f8f3f2080bba8adf9
  Author: Changpeng Fang <changpeng.fang at amd.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPUSearchableTables.td
    M llvm/test/Analysis/UniformityAnalysis/AMDGPU/intrinsics.ll

  Log Message:
  -----------
  AMDGPU: Add SourceOfDivergence for int_amdgcn_global_load_tr (#79218)


  Commit: c28ab6274322da693ea41a49e301c15b551c974a
      https://github.com/llvm/llvm-project/commit/c28ab6274322da693ea41a49e301c15b551c974a
  Author: Chris Apple <14171107+cjappl at users.noreply.github.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M compiler-rt/lib/sanitizer_common/sanitizer_internal_defs.h
    M compiler-rt/lib/tsan/rtl/tsan_dispatch_defs.h

  Log Message:
  -----------
  [NFCI] Move SANITIZER_WEAK_IMPORT to sanitizer_common (#79208)

SANITIZER_WEAK_IMPORT is useful for any call that needs to be
conditionally linked in. This is currently used for the
tsan_dispatch_interceptors, but can be used for other calls introduced
in newer versions of MacOS. (such as `aligned_alloc` in this PR
https://github.com/llvm/llvm-project/pull/79198).

This PR moves the definition to a higher level so it can be used in
other sanitizers.


  Commit: 575568de4166bf69e0a5bc68978580afbe936878
      https://github.com/llvm/llvm-project/commit/575568de4166bf69e0a5bc68978580afbe936878
  Author: Aart Bik <39774503+aartbik at users.noreply.github.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_block3d.mlir

  Log Message:
  -----------
  [mlir][sparse] adjust compression scheme for example (#79212)


  Commit: 750e90e4403df23d6b271afb90e6b4d463739965
      https://github.com/llvm/llvm-project/commit/750e90e4403df23d6b271afb90e6b4d463739965
  Author: Krzysztof Drewniak <Krzysztof.Drewniak at amd.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M mlir/include/mlir/Conversion/ArithToAMDGPU/ArithToAMDGPU.h
    M mlir/include/mlir/Conversion/Passes.td
    M mlir/include/mlir/Dialect/Arith/Utils/Utils.h
    M mlir/lib/Conversion/ArithToAMDGPU/ArithToAMDGPU.cpp
    M mlir/lib/Conversion/ArithToAMDGPU/CMakeLists.txt
    M mlir/lib/Dialect/Arith/Transforms/EmulateWideInt.cpp
    M mlir/lib/Dialect/Arith/Utils/Utils.cpp
    A mlir/test/Conversion/ArithToAMDGPU/8-bit-float-saturation.mlir
    M mlir/test/Conversion/ArithToAMDGPU/8-bit-floats.mlir

  Log Message:
  -----------
  [mlir][ArithToAMDGPU] Add option for saturating truncation to fp8 (#74153)

Many machine-learning applications (and most software written at AMD)
expect the operation that truncates floats to 8-bit floats to be
saturatinng. That is, they expect `truncf 256.0 : f32 to f8E4M3FNUZ` to
yield `240.0`, not `NaN`, and similarly for negative numbers. However,
the underlying hardware instruction that can be used for this truncation
implements overflow-to-NaN semantics.

To enable handling this usecase, we add the saturate-fp8-truncf option
to ArithToAMDGPU (off by default), which causes the requisite clamping
code to be emitted. Said clamping code ensures that Inf and NaN are
passed through exactly (and thus trancate to NaN).

Per review feedback, this commit efactors
createScalarOrSplatConstant() to the Arith dialect utilities and uses
it in this code. It also fixes naming of existing patterns and
switches from vector.extractelement/insertelement to
vector.extract/insert.


  Commit: 7fc25928233c133a4af1dadf0e060fb5d42ebd4e
      https://github.com/llvm/llvm-project/commit/7fc25928233c133a4af1dadf0e060fb5d42ebd4e
  Author: Jeremy Morse <jeremy.morse at sony.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/include/llvm/IR/Function.h
    M llvm/lib/IR/BasicBlock.cpp
    M llvm/lib/IR/DebugInfo.cpp
    M llvm/lib/IR/Instruction.cpp
    M llvm/test/DebugInfo/salvage-limit-expr-size.ll
    M llvm/test/Transforms/Util/strip-nonlinetable-debuginfo-localvars.ll

  Log Message:
  -----------
  [DebugInfo][RemoveDIs] "Final" cleanup for non-instr debug-info (#79121)

Here's a raft of minor fixes for the RemoveDIs project that's replacing
dbg.value intrinsics with DPValue objects, all IMO trivial:
 * When inserting functions or blocks and calling setIsNewDbgInfoFormat,
   do that after setting the Parent pointer, just in case conversion from
   (or to) dbg.value mode is triggered.
 * When transferring DPValues from an empty range in a splice call, don't
   transfer if there are no DPValues attached to the source block at all.
 * stripNonLineTableDebugInfo should drop DPValues.
 * In insertBefore, don't try to transfer DPValues if there aren't any.


  Commit: a16f81f5e3313e88f96de35e5edfe8bee463d308
      https://github.com/llvm/llvm-project/commit/a16f81f5e3313e88f96de35e5edfe8bee463d308
  Author: Thurston Dang <thurston at google.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M libcxx/include/string
    R libcxx/test/libcxx/containers/strings/basic.string/asan_deque_integration.pass.cpp
    R libcxx/test/libcxx/containers/strings/basic.string/asan_short.pass.cpp
    R libcxx/test/libcxx/containers/strings/basic.string/asan_vector_integration.pass.cpp
    M libcxx/test/support/asan_testing.h

  Log Message:
  -----------
  Revert "[ASan][libc++] Turn on ASan annotations for short strings (#79049)"

This reverts commit cb528ec5e6331ce207c7b835d7ab963bd5e13af7.

Reason: buildbot breakage (https://lab.llvm.org/buildbot/#/builders/5/builds/40364):
SUMMARY: AddressSanitizer: container-overflow /b/sanitizer-x86_64-linux-fast/build/libcxx_build_asan_ubsan/include/c++/v1/string:1870:29 in __get_long_pointer


  Commit: 22da8096020fcf54bae2f885882bbd088a4dcd9b
      https://github.com/llvm/llvm-project/commit/22da8096020fcf54bae2f885882bbd088a4dcd9b
  Author: Jeremy Morse <jeremy.morse at sony.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    A llvm/docs/RemoveDIsDebugInfo.md
    M llvm/docs/UserGuides.rst

  Log Message:
  -----------
  [Docs][DebugInfo][RemoveDIs] Document some debug-info transition info (#79167)

This is a high level description and FAQ for what we're doing in
RemoveDIs, and how old code should be behave with new debug-info
(exactly the same 99% of the time).


  Commit: 6a3ace20c80191159009668fff82fc3feeeca0a6
      https://github.com/llvm/llvm-project/commit/6a3ace20c80191159009668fff82fc3feeeca0a6
  Author: Nick Desaulniers <nickdesaulniers at users.noreply.github.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    R libc/src/threads/linux/call_once.cpp
    R libc/src/threads/linux/thread_start_args.h.def

  Log Message:
  -----------
  [libc] remove redundant call_once (#79226)

Missed cleanup from https://reviews.llvm.org/D134716.

Fixes: #79220


  Commit: 2a61be4e4ca481016516403f634b475197221991
      https://github.com/llvm/llvm-project/commit/2a61be4e4ca481016516403f634b475197221991
  Author: Jeffrey Byrnes <Jeffrey.Byrnes at amd.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/lib/Transforms/Scalar/SROA.cpp

  Log Message:
  -----------
  [SROA] NFC: Extract code to checkVectorTypesForPromotion

Change-Id: Ib6f237cc791a097f8f2411bc1d6502f11d4a748e


  Commit: 25e1916d88ebeef786956b678a4eb9a757e219d9
      https://github.com/llvm/llvm-project/commit/25e1916d88ebeef786956b678a4eb9a757e219d9
  Author: Alan Zhao <alanzhao1 at users.noreply.github.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M clang/test/CodeGenCXX/new-array-init.cpp

  Log Message:
  -----------
  [nfc][clang] Fix test in new-array-init.cpp (#79225)

This test was originally introduced in
https://github.com/llvm/llvm-project/pull/76976, but it incorrectly
tests braced-list initialization instead of parenthesized
initialization.


  Commit: d657519838e4b2310e13ec5ff52599e041860825
      https://github.com/llvm/llvm-project/commit/d657519838e4b2310e13ec5ff52599e041860825
  Author: Pete Lawrence <plawrence at apple.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M lldb/source/Core/ValueObject.cpp

  Log Message:
  -----------
  [lldb] Improve maintainability and readability for ValueObject methods (#75865)

As I worked through changes to another PR
(https://github.com/llvm/llvm-project/pull/74912), I couldn't help but
rewrite a few methods for readability, maintainability, and possibly
some behavior correctness too.

1. Exiting early instead of nested `if`-statements, which:
	- Reduces indentation levels for all subsequent lines
	- Treats missing pre-conditions similar to an error
- Clearly indicates that the full length of the method is the "happy
path".
2. Explicitly return empty Value Object shared pointers for those error
(like) situations, which
- Reduces the time it takes a maintainer to figure out what the method
actually returns based on those conditions.

3. Converting a mix of `if` and `if`-`else`-statements around an enum
into one `switch` statement, which:
	- Consolidates the former branching logic
	- Lets the compiler warn you of a (future) missing enum case
- This one may actually change behavior slightly, because what was an
early test for one enum case, now happens later on in the `switch`.

4. Consolidating near-identical, "copy-pasta" logic into one place,
which:
	- Separates the common code to the diverging paths.
	- Highlights the differences between the code paths.



rdar://119833526


  Commit: 03a61d34ebf4f8eeaa6861bec3ab39c75bb41778
      https://github.com/llvm/llvm-project/commit/03a61d34ebf4f8eeaa6861bec3ab39c75bb41778
  Author: Paul Kirth <paulkirth at google.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/include/llvm/BinaryFormat/ELFRelocs/RISCV.def
    M llvm/include/llvm/CodeGen/CommandFlags.h
    M llvm/include/llvm/Target/TargetMachine.h
    M llvm/include/llvm/Target/TargetOptions.h
    M llvm/include/llvm/TargetParser/Triple.h
    M llvm/lib/CodeGen/CommandFlags.cpp
    M llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
    M llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp
    M llvm/lib/Target/RISCV/MCTargetDesc/RISCVBaseInfo.h
    M llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFObjectWriter.cpp
    M llvm/lib/Target/RISCV/MCTargetDesc/RISCVFixupKinds.h
    M llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCCodeEmitter.cpp
    M llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCExpr.cpp
    M llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCExpr.h
    M llvm/lib/Target/RISCV/RISCVAsmPrinter.cpp
    M llvm/lib/Target/RISCV/RISCVExpandPseudoInsts.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.h
    M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
    M llvm/lib/Target/RISCV/RISCVInstrInfo.td
    M llvm/lib/Target/TargetMachine.cpp
    M llvm/test/CodeGen/RISCV/tls-models.ll
    M llvm/test/MC/RISCV/relocations.s
    A llvm/test/MC/RISCV/tlsdesc.s

  Log Message:
  -----------
  [RISCV] Support TLSDESC in the RISC-V backend (#66915)

This patch adds basic TLSDESC support in the RISC-V backend.

Specifically, we add new relocation types for TLSDESC, as prescribed in 
https://github.com/riscv-non-isa/riscv-elf-psabi-doc/pull/373, and add a
new pseudo instruction to simplify code generation.

This patch does not try to optimize the local dynamic case, which can be
improved in separate patches. 

Linker side changes will also be handled separately.

The current implementation is only enabled when passing the new
`-enable-tlsdesc` codegen flag.


  Commit: df1e01b316b174b5aa10727bd2ee0ec1082a9f65
      https://github.com/llvm/llvm-project/commit/df1e01b316b174b5aa10727bd2ee0ec1082a9f65
  Author: Jeff Niu <jeff at modular.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M mlir/test/IR/print-attr-type-aliases.mlir
    M mlir/test/lib/Dialect/Test/TestAttrDefs.td
    M mlir/test/lib/Dialect/Test/TestAttributes.cpp

  Log Message:
  -----------
  [mlir] Add example of `printAlias` to test dialect (NFC) (#79232)

Follow-up from previous pull request. Motivate the API change with an
attribute that decides between sugaring a sub-attribute or using an
alias


  Commit: 766e645d8d1e9e999386b90e3e19554d72324a66
      https://github.com/llvm/llvm-project/commit/766e645d8d1e9e999386b90e3e19554d72324a66
  Author: Jeffrey Byrnes <Jeffrey.Byrnes at amd.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/test/Transforms/SROA/vector-promotion.ll

  Log Message:
  -----------
  [SROA] NFC: Precommit test for pull/77678

Change-Id: I6b2346301f9bd840a0adceba4a0d03e9932af245


  Commit: b1778c7d7b9ec07c075118546b85a7cc9741e1f1
      https://github.com/llvm/llvm-project/commit/b1778c7d7b9ec07c075118546b85a7cc9741e1f1
  Author: Aiden Grossman <agrossman154 at yahoo.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/include/llvm/CodeGen/AsmPrinter.h
    M llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
    R llvm/test/CodeGen/Generic/bb-profile-dump.ll

  Log Message:
  -----------
  [AsmPrinter] Remove mbb-profile-dump flag (#76595)

Now that the work embedding PGO information in SHT_LLVM_BB_ADDR_MAP ELF
sections has landed, there is no longer a need to keep around the
mbb-profile-dump flag.


  Commit: c41472dbafd0dcacd943a95a9a099c1942d50394
      https://github.com/llvm/llvm-project/commit/c41472dbafd0dcacd943a95a9a099c1942d50394
  Author: Aiden Grossman <agrossman154 at yahoo.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M .github/workflows/libclang-python-tests.yml

  Log Message:
  -----------
  [Github] Only run libclang-python-tests on monorepo main

The libclang python binding test CI job currently doesn't have any
restrictions on what branches it will run on when something is pushed
and also isn't restricted to the monorepo. This patch adds a branch
restriction for the push event, only running the CI job when something
is pushed to the main branch (and the path filter is met), and also adds
a filter to ensure that the job comes from a PR against the monorepo or
a push to a branch in the monorepo.


  Commit: c51ab483e6c2d991a01179584705b83fbea1940d
      https://github.com/llvm/llvm-project/commit/c51ab483e6c2d991a01179584705b83fbea1940d
  Author: Jinyang He <hejinyang at loongson.cn>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp
    M llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.h
    M llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchFixupKinds.h
    A llvm/test/MC/LoongArch/Relocations/align-non-executable.s
    M llvm/test/MC/LoongArch/Relocations/relax-addsub.s
    A llvm/test/MC/LoongArch/Relocations/relax-align.s

  Log Message:
  -----------
  [LoongArch] Insert nops and emit align reloc when handle alignment directive (#72962)

Refer to RISCV, we will fix up the alignment if linker relaxation
changes code size and breaks alignment. Insert enough Nops and emit
R_LARCH_ALIGN relocation type so that linker could satisfy the alignment
by removing Nops.
It does so only in sections with the SHF_EXECINSTR flag.

In LoongArch psABI v2.30, R_LARCH_ALIGN requires symbol index. The
lowest 8 bits of addend represent alignment and the other bits of addend
represent the maximum number of bytes to emit.


  Commit: f709fbb1bb5e6240aad4edeb2f0e417df74cfa27
      https://github.com/llvm/llvm-project/commit/f709fbb1bb5e6240aad4edeb2f0e417df74cfa27
  Author: Jeffrey Byrnes <jeffrey.byrnes at amd.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/lib/Transforms/Scalar/SROA.cpp
    M llvm/test/Transforms/SROA/vector-promotion.ll

  Log Message:
  -----------
  [SROA] Only try additional vector type candidates when needed (#77678)

https://github.com/llvm/llvm-project/commit/f9c2a341b94ca71508dcefa109ece843459f7f13
causes regressions when we have a slice with integer vector type that is
the same size as the partition, and a ptr load/store slice that is not
the size of the element type.

Ref `vector-promotion.ll:ptrLoadStoreTys`. 

Before the patch, we would only consider `<4 x i32>` as a candidate type
for vector promotion, and would find that it is a viable type for all
the slices.

After the patch, we now add `<2 x ptr>` as a candidate type due to slice
with user `store ptr %val0, ptr %obj, align 8` -- and flag that we
`HaveVecPtrTy`. The pre-existing behavior of this flag results in
removing the viable `<4 x i32>` and keeping only the unviable `<2 x
ptr>`, which results in a failure to promote.

The end result is failing to promote an alloca that was previously
promoted -- this does not appear to be the intent of that patch, which
has the goal of increasing promotions by providing more promotion
opportunities.

This PR preserves this behavior via a simple reorganization of the
implemention: try first the slice types with same size as the partition,
then, if there is no promotable type, try the `LoadStoreTys.`


  Commit: c663c8b8839e8a3e780426c1ab4d0005df90a116
      https://github.com/llvm/llvm-project/commit/c663c8b8839e8a3e780426c1ab4d0005df90a116
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M lld/test/ELF/dead-reloc-in-nonalloc.s

  Log Message:
  -----------
  [ELF,test] Improve dead-reloc-in-nonalloc.s

Test an absolute relocation referencing a DSO symbol, relocating a
non-SHF_ALLOC section. Also test --gc-sections.


  Commit: 7e50f006f7f652b9a5ac5ddd64deba5f1c9388a8
      https://github.com/llvm/llvm-project/commit/7e50f006f7f652b9a5ac5ddd64deba5f1c9388a8
  Author: paperchalice <liujunchang97 at outlook.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/include/llvm/CodeGen/CodeGenPassBuilder.h
    M llvm/include/llvm/CodeGen/TargetPassConfig.h
    M llvm/include/llvm/Target/CGPassBuilderOption.h
    M llvm/lib/CodeGen/TargetPassConfig.cpp
    M llvm/lib/Target/X86/CMakeLists.txt
    A llvm/lib/Target/X86/X86CodeGenPassBuilder.cpp
    M llvm/lib/Target/X86/X86TargetMachine.h
    A llvm/test/tools/llc/new-pm/lit.local.cfg
    A llvm/test/tools/llc/new-pm/option-conflict.ll
    A llvm/test/tools/llc/new-pm/pipeline.ll
    A llvm/test/tools/llc/new-pm/start-stop.ll
    M llvm/tools/llc/CMakeLists.txt
    A llvm/tools/llc/NewPMDriver.cpp
    A llvm/tools/llc/NewPMDriver.h
    M llvm/tools/llc/llc.cpp
    M llvm/unittests/CodeGen/CMakeLists.txt
    R llvm/unittests/CodeGen/CodeGenPassBuilderTest.cpp

  Log Message:
  -----------
  [NewPM][CodeGen][llc] Add NPM support (#70922)

Add new pass manager support to `llc`. Users can use
`--passes=pass1,pass2...` to run mir passes, and use `--enable-new-pm`
to run default codegen pipeline.
This patch is taken from [D83612](https://reviews.llvm.org/D83612), the
original author is @yuanfang-chen.

---------

Co-authored-by: Yuanfang Chen <455423+yuanfang-chen at users.noreply.github.com>


  Commit: 230c13d59d0843c3b738920b85c341cc78a61fa9
      https://github.com/llvm/llvm-project/commit/230c13d59d0843c3b738920b85c341cc78a61fa9
  Author: Christudasan Devadasan <christudasan.devadasan at amd.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/SIFrameLowering.cpp
    M llvm/lib/Target/AMDGPU/SILowerSGPRSpills.cpp
    M llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp
    M llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.h
    M llvm/test/CodeGen/AMDGPU/amdgpu-simplify-libcall-pow-codegen.ll
    M llvm/test/CodeGen/AMDGPU/bf16.ll
    M llvm/test/CodeGen/AMDGPU/callee-frame-setup.ll
    M llvm/test/CodeGen/AMDGPU/dwarf-multi-register-use-crash.ll
    M llvm/test/CodeGen/AMDGPU/gfx-callable-argument-types.ll
    M llvm/test/CodeGen/AMDGPU/gfx-callable-preserved-registers.ll
    M llvm/test/CodeGen/AMDGPU/gfx-callable-return-types.ll
    M llvm/test/CodeGen/AMDGPU/global_atomics_i32_system.ll
    M llvm/test/CodeGen/AMDGPU/global_atomics_i64_system.ll
    M llvm/test/CodeGen/AMDGPU/identical-subrange-spill-infloop.ll
    M llvm/test/CodeGen/AMDGPU/indirect-call.ll
    M llvm/test/CodeGen/AMDGPU/insert-waitcnts-crash.ll
    M llvm/test/CodeGen/AMDGPU/ipra.ll
    M llvm/test/CodeGen/AMDGPU/mul24-pass-ordering.ll
    M llvm/test/CodeGen/AMDGPU/s-getpc-b64-remat.ll
    M llvm/test/CodeGen/AMDGPU/sgpr-spill-overlap-wwm-reserve.mir
    M llvm/test/CodeGen/AMDGPU/sgpr-spills-split-regalloc.ll
    M llvm/test/CodeGen/AMDGPU/sibling-call.ll
    M llvm/test/CodeGen/AMDGPU/spill-sgpr-csr-live-ins.mir
    M llvm/test/CodeGen/AMDGPU/spill-sgpr-to-virtual-vgpr.mir
    M llvm/test/CodeGen/AMDGPU/spill_more_than_wavesize_csr_sgprs.ll
    M llvm/test/CodeGen/AMDGPU/stacksave_stackrestore.ll
    M llvm/test/CodeGen/AMDGPU/strictfp_f16_abi_promote.ll
    M llvm/test/CodeGen/AMDGPU/unstructured-cfg-def-use-issue.ll
    M llvm/test/CodeGen/AMDGPU/vgpr-large-tuple-alloc-error.ll
    M llvm/test/CodeGen/AMDGPU/vgpr-tuple-allocation.ll
    M llvm/test/CodeGen/AMDGPU/wwm-reserved-spill.ll

  Log Message:
  -----------
  [AMDGPU] Pick available high VGPR for CSR SGPR spilling (#78669)

CSR SGPR spilling currently uses the early available physical VGPRs. It
currently imposes a high register pressure while trying to allocate
large VGPR tuples within the default register budget.

This patch changes the spilling strategy by picking the VGPRs in the
reverse order, the highest available VGPR first and later after regalloc
shift them back to the lowest available range. With that, the initial
VGPRs would be available for allocation and possibility
of finding large number of contiguous registers will be more.


  Commit: 3dea0aa8f4607888d0c32cd7a691d8090b1b73c7
      https://github.com/llvm/llvm-project/commit/3dea0aa8f4607888d0c32cd7a691d8090b1b73c7
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp

  Log Message:
  -----------
  [LSR] Fix incorrect comment. NFC (#79207)


  Commit: ecde13b1a861696dec5c4ccae792abe25df07db9
      https://github.com/llvm/llvm-project/commit/ecde13b1a861696dec5c4ccae792abe25df07db9
  Author: Nico Weber <thakis at chromium.org>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/utils/gn/secondary/llvm/lib/Target/X86/BUILD.gn
    M llvm/utils/gn/secondary/llvm/tools/llc/BUILD.gn
    M llvm/utils/gn/secondary/llvm/unittests/CodeGen/BUILD.gn

  Log Message:
  -----------
  [gn build] port 7e50f006f7f6


  Commit: f0c387038854d61a632520a4073d1b6ebf4997ed
      https://github.com/llvm/llvm-project/commit/f0c387038854d61a632520a4073d1b6ebf4997ed
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M clang/lib/Lex/HeaderSearch.cpp
    A clang/test/Modules/pr73023.cpp

  Log Message:
  -----------
  [Modules] [HeaderSearch] Don't reenter headers if it is pragma once  (#76119)

Close https://github.com/llvm/llvm-project/issues/73023

The direct issue of https://github.com/llvm/llvm-project/issues/73023 is
that we entered a header which is marked as pragma once since the
compiler think it is OK if there is controlling macro.

It doesn't make sense. I feel like it should be sufficient to skip it
after we see the '#pragma once'.

>From the context, it looks like the workaround is primarily for
ObjectiveC. So we might need reviewers from OC.


  Commit: 7bda0ce15a2874ad74fb1a451a174084094ccc34
      https://github.com/llvm/llvm-project/commit/7bda0ce15a2874ad74fb1a451a174084094ccc34
  Author: paperchalice <liujunchang97 at outlook.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/tools/llc/llc.cpp

  Log Message:
  -----------
  [llc] Remove C backend support (#79237)

C backend is removed in 3.1.


  Commit: 63f742c15f01a25c60f0090a3aceb15bb8985e5e
      https://github.com/llvm/llvm-project/commit/63f742c15f01a25c60f0090a3aceb15bb8985e5e
  Author: Michael Maitland <michaeltmaitland at gmail.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M clang/test/Driver/riscv-cpus.c
    M clang/test/Misc/target-invalid-cpu-note.c
    M llvm/docs/ReleaseNotes.rst
    M llvm/lib/Target/RISCV/RISCVProcessors.td

  Log Message:
  -----------
  [RISCV] Add sifive-p670 processor (#79015)

This is an OOO core that has a vector unit. For more information see
https://www.sifive.com/cores/performance-p650-670.

Scheduler model and other tuning will come in separate patches.


  Commit: 93248729cfae82a5ca2323d4a8e15aa3b9b9c707
      https://github.com/llvm/llvm-project/commit/93248729cfae82a5ca2323d4a8e15aa3b9b9c707
  Author: Wang Pengcheng <wangpengcheng.pp at bytedance.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    R llvm/test/MC/RISCV/rv32a-invalid.s
    R llvm/test/MC/RISCV/rv32a-valid.s
    A llvm/test/MC/RISCV/rv32zaamo-invalid.s
    A llvm/test/MC/RISCV/rv32zaamo-valid.s
    A llvm/test/MC/RISCV/rv32zalrsc-invalid.s
    A llvm/test/MC/RISCV/rv32zalrsc-valid.s
    R llvm/test/MC/RISCV/rv64a-invalid.s
    R llvm/test/MC/RISCV/rv64a-valid.s
    A llvm/test/MC/RISCV/rv64zaamo-invalid.s
    A llvm/test/MC/RISCV/rv64zaamo-valid.s
    A llvm/test/MC/RISCV/rv64zalrsc-invalid.s
    A llvm/test/MC/RISCV/rv64zalrsc-valid.s

  Log Message:
  -----------
  [RISCV][MC] Split tests for A into Zaamo and Zalrsc parts

So that we don't duplicate tests in later patch.

Reviewers: topperc, dtcxzyw, asb

Reviewed By: asb

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


  Commit: 987087df90026605fc8d03ebda5a1cd31b71e609
      https://github.com/llvm/llvm-project/commit/987087df90026605fc8d03ebda5a1cd31b71e609
  Author: Tom Stellard <tstellar at redhat.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M clang-tools-extra/docs/ReleaseNotes.rst
    M clang/docs/ReleaseNotes.rst
    M libcxx/include/__config
    M lld/docs/ReleaseNotes.rst
    M llvm/CMakeLists.txt
    M llvm/docs/ReleaseNotes.rst
    M llvm/utils/gn/secondary/llvm/version.gni
    M llvm/utils/lit/lit/__init__.py
    M openmp/docs/ReleaseNotes.rst
    M pstl/docs/ReleaseNotes.rst

  Log Message:
  -----------
  Bump trunk version to 19.0.0git


  Commit: baba7e4175b6ca21e83b1cf8229f29dbba02e979
      https://github.com/llvm/llvm-project/commit/baba7e4175b6ca21e83b1cf8229f29dbba02e979
  Author: Weining Lu <luweining at loongson.cn>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/test/DebugInfo/LoongArch/dwarf-loongarch-relocs.ll

  Log Message:
  -----------
  [test] Update dwarf-loongarch-relocs.ll

Address buildbot faiures:
http://45.33.8.238/macm1/77360/step_11.txt
http://45.33.8.238/linux/128902/step_12.txt


  Commit: 7251243315ef66f9b3f32e6f8e9536f701aa0d0a
      https://github.com/llvm/llvm-project/commit/7251243315ef66f9b3f32e6f8e9536f701aa0d0a
  Author: paperchalice <liujunchang97 at outlook.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    R llvm/include/llvm/CodeGen/CodeGenPassBuilder.h
    R llvm/include/llvm/CodeGen/MachinePassRegistry.def
    A llvm/include/llvm/Passes/CodeGenPassBuilder.h
    A llvm/include/llvm/Passes/MachinePassRegistry.def
    M llvm/include/module.modulemap
    M llvm/lib/CodeGen/CMakeLists.txt
    R llvm/lib/CodeGen/CodeGenPassBuilder.cpp
    M llvm/lib/Passes/CMakeLists.txt
    A llvm/lib/Passes/CodeGenPassBuilder.cpp
    M llvm/lib/Passes/PassBuilder.cpp
    M llvm/lib/Target/X86/X86CodeGenPassBuilder.cpp
    M llvm/tools/llc/NewPMDriver.cpp

  Log Message:
  -----------
  [CodeGen][Passes] Move `CodeGenPassBuilder.h` to Passes (#79242)

`CodeGenPassBuilder` is not very tightly coupled to CodeGen, it may need
to reference some method in pass builder in future, so move
`CodeGenPassBuilder.h` to Passes.


  Commit: 33d804c6c2786cbbbc13743060f08d679941e0a4
      https://github.com/llvm/llvm-project/commit/33d804c6c2786cbbbc13743060f08d679941e0a4
  Author: Brandon Wu <brandon.wu at sifive.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.h
    M llvm/lib/Target/RISCV/RISCVInstrInfoXSf.td
    M llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp
    M llvm/lib/Target/RISCV/RISCVRegisterInfo.td
    M llvm/test/CodeGen/RISCV/pr69586.ll

  Log Message:
  -----------
  [RISCV] Allow VCIX with SE to reorder (#77049)

This patch allows VCIX instructions that have side effect to be
reordered
with memory and other side effecting instructions. However we don't want
VCIX instructions to be reordered with each other, so we propose a dummy
register called VCIX_STATE and make these instructions implicitly define
and use
it.


  Commit: 502ec2e5a0e5922e09e69b7da08f3e7a8c7aacac
      https://github.com/llvm/llvm-project/commit/502ec2e5a0e5922e09e69b7da08f3e7a8c7aacac
  Author: Weining Lu <luweining at loongson.cn>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/test/DebugInfo/LoongArch/dwarf-loongarch-relocs.ll

  Log Message:
  -----------
  [test] Make dwarf-loongarch-relocs.ll non-sensitive of function alignment


  Commit: 4c3de45ecf9eea6b4ad850a042706f7865a2aab2
      https://github.com/llvm/llvm-project/commit/4c3de45ecf9eea6b4ad850a042706f7865a2aab2
  Author: leecheechen <chenli at loongson.cn>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M clang/test/CodeGen/LoongArch/lasx/builtin-error.c
    M clang/test/CodeGen/LoongArch/lsx/builtin-error.c

  Log Message:
  -----------
  [LoongArch][test] Add tests reporting error if lsx/lasx feature is missing when lsx/lasx builtins are called (#79250)


  Commit: 218bb21eaa2f3c08ec24de1f5d88f4d5265068bf
      https://github.com/llvm/llvm-project/commit/218bb21eaa2f3c08ec24de1f5d88f4d5265068bf
  Author: Luke Lau <luke at igalia.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

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

  Log Message:
  -----------
  [RISCV] Update performCombineVMergeAndVOps comments. NFC (#78472)

The current comment was written whenever we had separate TU/TA variants
for
each pseudo, and hasn't been accurate for a while.
This method has grown rather complicated over time so rather than
enumerate all
the different possible cases now (which must be a lot), this updates the
comment to list the different rules that are required for us to be able
to fold
a vmerge.


  Commit: f7b61f81b5c4710fe089c357ef57ac0afcaf4b56
      https://github.com/llvm/llvm-project/commit/f7b61f81b5c4710fe089c357ef57ac0afcaf4b56
  Author: Shengchen Kan <shengchen.kan at intel.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86InstrInfo.cpp
    M llvm/test/CodeGen/X86/apx/adc.ll
    M llvm/test/CodeGen/X86/apx/sbb.ll
    M llvm/test/CodeGen/X86/apx/sub.ll

  Log Message:
  -----------
  [X86][CodeGen] Transform NDD SUB to CMP if dest reg is dead (#79135)


  Commit: a01195ff5cc3d7fd084743b1f47007645bb385f4
      https://github.com/llvm/llvm-project/commit/a01195ff5cc3d7fd084743b1f47007645bb385f4
  Author: Douglas Yung <douglas.yung at sony.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/test/CodeGen/SystemZ/zos-ppa2.ll

  Log Message:
  -----------
  Update compiler version expected that seems to be embedded in CHECK line of test at llvm/test/CodeGen/SystemZ/zos-ppa2.ll.

The test contains a CHECK line which verifies an .ascii line which originally checks
for 18001970010100000000. After the bump of the compiler version to 19, the test
started to fail with the string now being 19001970010100000000.

This should fix this failing test on bots.


  Commit: b4785cebfb0a756e19ff4ae3e41d2563f10cd292
      https://github.com/llvm/llvm-project/commit/b4785cebfb0a756e19ff4ae3e41d2563f10cd292
  Author: Uday Bondhugula <uday at polymagelabs.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/Affine/Analysis/Utils.h
    M mlir/include/mlir/Dialect/Affine/LoopFusionUtils.h
    M mlir/lib/Dialect/Affine/Utils/LoopFusionUtils.cpp
    M mlir/lib/Dialect/Affine/Utils/Utils.cpp

  Log Message:
  -----------
  [MLIR] NFC. Clean up stale TODO comments and style deviations in affine utils (#79079)

NFC. Clean up stale TODO comments and style deviations in affine utils
and
affine fusion utils.


  Commit: bc182ea7c2e86aea27268a08311438f8093a6a45
      https://github.com/llvm/llvm-project/commit/bc182ea7c2e86aea27268a08311438f8093a6a45
  Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/utils/gn/secondary/llvm/lib/CodeGen/BUILD.gn
    M llvm/utils/gn/secondary/llvm/lib/Passes/BUILD.gn

  Log Message:
  -----------
  [gn build] Port 7251243315ef


  Commit: 7e3fb372b0e8899958ec7e9241797e7e136a7a23
      https://github.com/llvm/llvm-project/commit/7e3fb372b0e8899958ec7e9241797e7e136a7a23
  Author: kadir çetinkaya <kadircet at google.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M clang-tools-extra/include-cleaner/test/tool.cpp
    M clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp

  Log Message:
  -----------
  [include-cleaner] Check emptiness instead of occurences (#79154)

Our internal integration relies on injecting some default values to
ignore/keep lists.
That means we can have filters, despite of not having occurences
for the flag.


  Commit: d119ecb958ebc0a82e7bca01a21115ced8e0b13d
      https://github.com/llvm/llvm-project/commit/d119ecb958ebc0a82e7bca01a21115ced8e0b13d
  Author: Shengchen Kan <shengchen.kan at intel.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/test/CodeGen/X86/apx/mul-i1024.ll

  Log Message:
  -----------
  [X86][NFC] Pre-commit test for RA hints for APX NDD instructions


  Commit: 5355857038cf6f9e3831504804e973508ffc2d01
      https://github.com/llvm/llvm-project/commit/5355857038cf6f9e3831504804e973508ffc2d01
  Author: cor3ntin <corentinjabot at gmail.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M clang/include/clang/Basic/CharInfo.h

  Log Message:
  -----------
  [Clang][NFC] Optimize isAsciiIdentifierContinue (#78699)

Precompute the isAsciiIdentifierContinue table which is on the hot path.


https://llvm-compile-time-tracker.com/compare.php?from=30da0f5a359ab4a684c5fdf0f4dbed20bae10f99&to=cb0e48db2b8193d2ee59c2a6e998317cb220d513&stat=instructions:u


  Commit: 7a6c2628e99f70edf6ee46a6b4b4d3d7301353c6
      https://github.com/llvm/llvm-project/commit/7a6c2628e99f70edf6ee46a6b4b4d3d7301353c6
  Author: martinboehme <mboehme at google.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp

  Log Message:
  -----------
  [clang][dataflow] Eliminate two uses of `RecordValue::getLoc()`. (#79163)

This is a small step towards eventually eliminating `RecordValue`
entirely.


  Commit: 78b00c116be8b3b53ff13552e31eb305b11cb169
      https://github.com/llvm/llvm-project/commit/78b00c116be8b3b53ff13552e31eb305b11cb169
  Author: Pavel Labath <pavel at labath.sk>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M lldb/source/Core/ValueObject.cpp

  Log Message:
  -----------
  Revert "[lldb] Improve maintainability and readability for ValueObject methods (#75865)"

This reverts commit d657519838e4b2310e13ec5ff52599e041860825 as it
breaks two dozen tests. The breakages are related to variable path
expression parsing and summary string parsing (possibly the same code).


  Commit: dd3e6c87f3f4affd17d05a4d25fa77d224a98d94
      https://github.com/llvm/llvm-project/commit/dd3e6c87f3f4affd17d05a4d25fa77d224a98d94
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/Basic/LangOptions.def
    M clang/lib/Serialization/ASTReaderDecl.cpp
    A clang/test/Interpreter/cxx20-modules.cppm

  Log Message:
  -----------
  Support C++20 Modules in clang-repl (#79261)

This comes from when I playing around clang-repl with moduels : )

I succeeded to import std with https://libcxx.llvm.org/Modules.html and
calling `std::printf` after this patch.

I want to put the documentation part to
https://clang.llvm.org/docs/StandardCPlusPlusModules.html in a separate
commit.


  Commit: 71d64ed80f8b7556be6954b2c4d663c7d89f476d
      https://github.com/llvm/llvm-project/commit/71d64ed80f8b7556be6954b2c4d663c7d89f476d
  Author: Shengchen Kan <shengchen.kan at intel.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86InstrInfo.cpp
    A llvm/test/CodeGen/X86/apx/optimize-compare.mir
    A llvm/test/CodeGen/X86/apx/shift-eflags.ll

  Log Message:
  -----------
  [X86][Peephole] Add NDD entries for EFLAGS optimization


  Commit: c1259650e742e7b3053f6520729b4c1f44c27814
      https://github.com/llvm/llvm-project/commit/c1259650e742e7b3053f6520729b4c1f44c27814
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M clang/test/Interpreter/cxx20-modules.cppm

  Log Message:
  -----------
  [NFC] Add more requirement to clang/test/Interpreter/cxx20-modules.cppm

The previous test can't work on other platforms like PS4.

Address the comments in
https://github.com/llvm/llvm-project/pull/79261#issuecomment-1907589030


  Commit: 11ca56eaf1aaf4f7fba5d94562c6b6c0d4444bc3
      https://github.com/llvm/llvm-project/commit/11ca56eaf1aaf4f7fba5d94562c6b6c0d4444bc3
  Author: Felix Kellenbenz <107758057+felixkellenbenz at users.noreply.github.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/lib/ObjCopy/ELF/ELFObjcopy.cpp
    M llvm/test/tools/llvm-objcopy/ELF/strip-all.test

  Log Message:
  -----------
  [llvm-objcopy] Don't remove .gnu_debuglink section when using --strip-all (#78919)

This fixes the issue mentioned here:
https://github.com/llvm/llvm-project/issues/57407
It prevents `llvm-objcopy` from removing the `.gnu _debuglink` section
when used with the `--strip-all` flag. Since `--strip-all` is the
default of `llvm-strip` the patch also prevents `llvm-strip` from
removing the `.gnu_debuglink` section.


  Commit: bae1adae1c7cdf3b0bd618fc9cd5af251dc901ed
      https://github.com/llvm/llvm-project/commit/bae1adae1c7cdf3b0bd618fc9cd5af251dc901ed
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M clang/docs/StandardCPlusPlusModules.rst

  Log Message:
  -----------
  [docs] [C++20] [Modules] Document how to import modules in clang-repl

We support to import C++20 named modules now in in clang-repl in
https://github.com/llvm/llvm-project/commit/dd3e6c87f3f4affd17d05a4d25fa77d224a98d94.

Then we should document how can we do that.


  Commit: d50705ed5d482ccd9b9afabea2b6358d056b7543
      https://github.com/llvm/llvm-project/commit/d50705ed5d482ccd9b9afabea2b6358d056b7543
  Author: Andrzej Warzyński <andrzej.warzynski at arm.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

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

  Log Message:
  -----------
  [mlir][vector] Support scalable vec in `TransferReadAfterWriteToBroadcast` (#79162)

Makes `TransferReadAfterWriteToBroadcast` correctly propagate
scalability flags.


  Commit: f3b495f5842bd3c8a5433ba4b784d49c663f84af
      https://github.com/llvm/llvm-project/commit/f3b495f5842bd3c8a5433ba4b784d49c663f84af
  Author: Luke Lau <luke at igalia.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/test/Analysis/CostModel/RISCV/shuffle-reverse.ll

  Log Message:
  -----------
  [RISCV] Add tests for reverse shuffles of i1 vectors. NFC

This is to add test coverage for a change in #73342


  Commit: 34466019e74fe455f6c67bab1d48222a08bede4d
      https://github.com/llvm/llvm-project/commit/34466019e74fe455f6c67bab1d48222a08bede4d
  Author: Adrian Kuegel <akuegel at google.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

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

  Log Message:
  -----------
  [mlir][Bazel] Add missing dependency after 750e90e4403df23d6b271afb90e6b4d463739965


  Commit: 5404a3792ed58b94b938bbf5cfe6eeb23c664efc
      https://github.com/llvm/llvm-project/commit/5404a3792ed58b94b938bbf5cfe6eeb23c664efc
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M clang/lib/Driver/Driver.cpp
    M clang/lib/Driver/ToolChains/CommonArgs.cpp
    M clang/lib/Driver/ToolChains/Hexagon.cpp

  Log Message:
  -----------
  [Driver] Use StringRef::consume_front (NFC)


  Commit: 873a7bb12949709ea406c8adc82cd69fc372527d
      https://github.com/llvm/llvm-project/commit/873a7bb12949709ea406c8adc82cd69fc372527d
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/lib/Transforms/Scalar/JumpThreading.cpp

  Log Message:
  -----------
  [Transforms] Use llvm::pred_size and llvm::predecessors (NFC)


  Commit: 18a3c7a01ed983d19e47a03e664200ffff53689c
      https://github.com/llvm/llvm-project/commit/18a3c7a01ed983d19e47a03e664200ffff53689c
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

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

  Log Message:
  -----------
  [AMDGPU] Use llvm::none_of (NFC)


  Commit: b0763a1ae940d60d8f558f85216382bc6695a1e3
      https://github.com/llvm/llvm-project/commit/b0763a1ae940d60d8f558f85216382bc6695a1e3
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/lib/DebugInfo/DWARF/DWARFFormValue.cpp

  Log Message:
  -----------
  [DebugInfo] Use std::size (NFC)


  Commit: 33ecef9812e2c9bfadef035b8e34a949acae2abc
      https://github.com/llvm/llvm-project/commit/33ecef9812e2c9bfadef035b8e34a949acae2abc
  Author: Shengchen Kan <shengchen.kan at intel.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86InstrInfo.cpp
    M llvm/test/CodeGen/X86/commute-blend-avx2.ll

  Log Message:
  -----------
  [X86][CodeGen] Fix crash when commute operands of Instruction for code size (#79245)

Reported in 134fcc62786d31ab73439201dce2d73808d1785a

Incorrect opcode is used  b/c there is a `[[fallthrough]]` at line 2386.


  Commit: a7a1b8b17e264fb0f2d2b4165cf9a7f5094b08b3
      https://github.com/llvm/llvm-project/commit/a7a1b8b17e264fb0f2d2b4165cf9a7f5094b08b3
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/lib/Analysis/MemorySSAUpdater.cpp
    M llvm/test/Transforms/SimpleLoopUnswitch/memssa-readnone-access.ll

  Log Message:
  -----------
  [MSSAUpdater] Handle simplified accesses when updating phis (#78272)

This is a followup to #76819. After those changes, we can still run into
an assertion failure for a slight variation of the test case: When
fixing up MemoryPhis, we map the incoming access to the access of the
cloned instruction -- which may now no longer exist.

Fix this by reusing the getNewDefiningAccessForClone() helper, which
will look upwards for a new defining access in that case.


  Commit: 303e64826b79af0c0e67ba06d5d8e1385adc32b5
      https://github.com/llvm/llvm-project/commit/303e64826b79af0c0e67ba06d5d8e1385adc32b5
  Author: Shengchen Kan <shengchen.kan at intel.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

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

  Log Message:
  -----------
  [X86][NFC] Remove dead code for "_REV" instructions

ADC/SBB with reverse encoding is never emitted by compiler before
encoding optimization, which is called after flag-copy lowering.

This is a partial reland for 8bbf100799a97f8342bf1a8409c6fb48f03e837f


  Commit: 543cf08636f3a3bb55dddba2e8cad787601647ba
      https://github.com/llvm/llvm-project/commit/543cf08636f3a3bb55dddba2e8cad787601647ba
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    A llvm/test/Transforms/PhaseOrdering/X86/loop-vectorizer-noalias.ll

  Log Message:
  -----------
  [PhaseOrdering] Add additional test for #79161 (NFC)


  Commit: cd7ea4ea657ea41b42fcbd0e6b33faa46608d18e
      https://github.com/llvm/llvm-project/commit/cd7ea4ea657ea41b42fcbd0e6b33faa46608d18e
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/lib/Analysis/LoopAccessAnalysis.cpp
    M llvm/test/Analysis/LoopAccessAnalysis/noalias-scope-decl.ll
    M llvm/test/Transforms/PhaseOrdering/X86/loop-vectorizer-noalias.ll

  Log Message:
  -----------
  [LAA] Drop alias scope metadata that is not valid across iterations (#79161)

LAA currently adds memory locations with their original AATags to AST.
However, scoped alias AATags may be valid only within one loop
iteration, while LAA reasons across iterations.

Fix this by determining which alias scopes are defined inside the loop,
and drop AATags that reference these scopes.

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


  Commit: 4a582845597e97d245e8ffdc14281f922b835e56
      https://github.com/llvm/llvm-project/commit/4a582845597e97d245e8ffdc14281f922b835e56
  Author: Nikolas Klauser <nikolasklauser at berlin.de>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M clang/include/clang/AST/Expr.h
    M clang/include/clang/Basic/Builtins.def
    M clang/include/clang/Basic/Builtins.h
    A clang/include/clang/Basic/Builtins.td
    R clang/include/clang/Basic/BuiltinsBPF.def
    A clang/include/clang/Basic/BuiltinsBPF.td
    A clang/include/clang/Basic/BuiltinsBase.td
    M clang/include/clang/Basic/CMakeLists.txt
    M clang/include/clang/Basic/TargetBuiltins.h
    M clang/include/module.modulemap
    M clang/lib/AST/StmtPrinter.cpp
    M clang/lib/Basic/Builtins.cpp
    M clang/lib/Basic/Targets/BPF.cpp
    M clang/lib/Sema/OpenCLBuiltins.td
    M clang/lib/Sema/SemaChecking.cpp
    M clang/lib/Sema/SemaExpr.cpp
    M clang/test/Analysis/bstring.c
    M clang/test/CodeGen/callback_pthread_create.c
    M clang/utils/TableGen/CMakeLists.txt
    A clang/utils/TableGen/ClangBuiltinsEmitter.cpp
    M clang/utils/TableGen/MveEmitter.cpp
    M clang/utils/TableGen/TableGen.cpp
    M clang/utils/TableGen/TableGenBackends.h

  Log Message:
  -----------
  [clang] Refactor Builtins.def to be a tablegen file (#68324)

This makes the builtins list quite a bit more verbose, but IMO this is a
huge win in terms of readability.


  Commit: 416b079336c6d6e48858f951cd494a7a3577deb8
      https://github.com/llvm/llvm-project/commit/416b079336c6d6e48858f951cd494a7a3577deb8
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M .github/workflows/issue-release-workflow.yml
    M llvm/utils/git/github-automation.py

  Log Message:
  -----------
  Fix release issue workflow (#79268)

Remove the `--phab-token` argument (which currently eats the subsequent
"auto" as the token no longer exists) and related code.

I think this will fix the workflow failure in
https://github.com/llvm/llvm-project/issues/79253#issuecomment-1907679229.


  Commit: fe0e632b00e63bda75155a8d1aa16d271d4af728
      https://github.com/llvm/llvm-project/commit/fe0e632b00e63bda75155a8d1aa16d271d4af728
  Author: Jeremy Morse <jeremy.morse at sony.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/include/llvm/Transforms/Utils/MemoryTaggingSupport.h
    M llvm/lib/Target/AArch64/AArch64StackTagging.cpp
    M llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp
    M llvm/lib/Transforms/Utils/MemoryTaggingSupport.cpp
    M llvm/test/Instrumentation/HWAddressSanitizer/RISCV/alloca.ll
    M llvm/test/Instrumentation/HWAddressSanitizer/alloca.ll

  Log Message:
  -----------
  [DebugInfo][RemoveDIs] Support DPValues in HWAsan (#78731)

This patch extends HWASAN to support maintenance of debug-info that
isn't stored as intrinsics, but is instead in a DPValue object. This is
straight-forwards: we collect any such objects in StackInfoBuilder, and
apply the same operations to them as we would to dbg.value and similar
intrinsics.

I've also replaced some calls to getNextNode with debug-info skipping
next calls, and use iterators for instruction insertion rather than
instruction pointers. This avoids any difference in output between
intrinsic / non-intrinsic debug-info, but also means that any debug-info
comes before code inserted by HWAsan, rather than afterwards. See the
test modifications, where the variable assignment (presented as a
dbg.value) jumps up over all the code inserted by HWAsan. Seeing how the
code inserted by HWAsan is always (AFAIUI) given the source-location of
the instruction being instrumented, I don't believe this will have any
effect on which lines variable assignments become visible on; it may
extend the number of instructions covered by the assignments though.


  Commit: fb9a82b0235713782c1cf9d1eba20ce8d95766f7
      https://github.com/llvm/llvm-project/commit/fb9a82b0235713782c1cf9d1eba20ce8d95766f7
  Author: Stefan Gränitz <stefan.graenitz at gmail.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M clang/tools/clang-repl/CMakeLists.txt

  Log Message:
  -----------
  [clang-repl] Refine fix for linker error: PLT offset too large

This is a follow-up improvement after the discussion in #78959


  Commit: 383d488b0bd68f1abd58c2d0114f82c54ee286d1
      https://github.com/llvm/llvm-project/commit/383d488b0bd68f1abd58c2d0114f82c54ee286d1
  Author: Kareem Ergawy <kareem.ergawy at amd.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M openmp/libomptarget/test/offloading/fortran/target_map_common_block1.f90

  Log Message:
  -----------
  [openmp][flang][offloading] Do not use fixed device IDs in checks (#78973)

Fixes a small issues in an offloading test where the test dependec on
the host and device being assigned certains numeric IDs. This however is
not stable and fails in situations where any of the devices is assigned
an ID different from the expected value. The fix just checks that
offloading succeeded by making sure the IDs are different.

The test was failing locally for me.


  Commit: 91ddcba83ae4385fe771e918c096e6074b411de3
      https://github.com/llvm/llvm-project/commit/91ddcba83ae4385fe771e918c096e6074b411de3
  Author: Petar Avramovic <Petar.Avramovic at amd.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/include/llvm/CodeGen/MachineRegisterInfo.h
    M llvm/include/llvm/CodeGen/MachineUniformityAnalysis.h
    M llvm/lib/CodeGen/MachineRegisterInfo.cpp
    M llvm/lib/CodeGen/MachineUniformityAnalysis.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUGlobalISelDivergenceLowering.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
    M llvm/lib/Target/AMDGPU/SILowerI1Copies.cpp
    M llvm/lib/Target/AMDGPU/SILowerI1Copies.h
    M llvm/test/CodeGen/AMDGPU/GlobalISel/divergence-divergent-i1-phis-no-lane-mask-merging.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/divergence-divergent-i1-phis-no-lane-mask-merging.mir
    M llvm/test/CodeGen/AMDGPU/GlobalISel/divergence-divergent-i1-used-outside-loop.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/divergence-divergent-i1-used-outside-loop.mir
    M llvm/test/CodeGen/AMDGPU/GlobalISel/divergence-structurizer.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/divergence-structurizer.mir
    M llvm/test/CodeGen/AMDGPU/GlobalISel/divergence-temporal-divergent-i1.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/divergence-temporal-divergent-i1.mir
    M llvm/test/CodeGen/AMDGPU/GlobalISel/divergence-temporal-divergent-reg.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/divergence-temporal-divergent-reg.mir
    M llvm/test/CodeGen/AMDGPU/GlobalISel/divergent-control-flow.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-phi.mir
    M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.div.fmas.ll

  Log Message:
  -----------
  AMDGPU/GlobalISelDivergenceLowering: select divergent i1 phis (#78482)

Implement PhiLoweringHelper for GlobalISel in DivergenceLoweringHelper.
Use machine uniformity analysis to find divergent i1 phis and select
them as lane mask phis in same way SILowerI1Copies select VReg_1 phis.
Note that divergent i1 phis include phis created by LCSSA and all cases
of uses outside of cycle are actually covered by "lowering LCSSA phis".
GlobalISel lane masks are registers with sgpr register class and S1 LLT.

TODO: General goal is that instructions created in this pass are fully
instruction-selected so that selection of lane mask phis is not split
across multiple passes.

patch 3 from: https://github.com/llvm/llvm-project/pull/73337


  Commit: 149ed9d2c58095f87745f8696ef96b5076c91fca
      https://github.com/llvm/llvm-project/commit/149ed9d2c58095f87745f8696ef96b5076c91fca
  Author: Petar Avramovic <Petar.Avramovic at amd.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp
    M llvm/test/CodeGen/AMDGPU/wmma-hazards.mir

  Log Message:
  -----------
  AMDGPU: update GFX11 wmma hazards (#76143)

One V_NOP or unrelated VALU instruction in between is required for
correctness when matrix A or B of current WMMA instruction overlaps with
matrix D of previous WMMA instruction.
Remaining cases of WMMA operand overlaps are handled by the hardware and
do not require handling in hazard recognizer.

Hardware may stall in cases where:
- matrix C of current WMMA instruction overlaps with matrix D of
previous WMMA instruction
- VALU instruction reads matrix D of previous WMMA instruction
- matrix A,B or C of WMMA instruction reads result of previous VALU
instruction


  Commit: 9dddb3d5f3bf323b7b7f8281bb848731f69fddfa
      https://github.com/llvm/llvm-project/commit/9dddb3d5f3bf323b7b7f8281bb848731f69fddfa
  Author: Haojian Wu <hokein.wu at gmail.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M clang/lib/Sema/SemaCoroutine.cpp
    M clang/test/AST/ast-dump-coroutine.cpp

  Log Message:
  -----------
  [AST] Mark the fallthrough coreturn statement implicit. (#77465)

This is a followup of #77311.


  Commit: c46109d0d78863ff5e4e23c8f9fd85eb1220a42e
      https://github.com/llvm/llvm-project/commit/c46109d0d78863ff5e4e23c8f9fd85eb1220a42e
  Author: Petar Avramovic <Petar.Avramovic at amd.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/include/llvm/CodeGen/MachineRegisterInfo.h
    M llvm/include/llvm/CodeGen/MachineUniformityAnalysis.h
    M llvm/lib/CodeGen/MachineRegisterInfo.cpp
    M llvm/lib/CodeGen/MachineUniformityAnalysis.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUGlobalISelDivergenceLowering.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
    M llvm/lib/Target/AMDGPU/SILowerI1Copies.cpp
    M llvm/lib/Target/AMDGPU/SILowerI1Copies.h
    M llvm/test/CodeGen/AMDGPU/GlobalISel/divergence-divergent-i1-phis-no-lane-mask-merging.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/divergence-divergent-i1-phis-no-lane-mask-merging.mir
    M llvm/test/CodeGen/AMDGPU/GlobalISel/divergence-divergent-i1-used-outside-loop.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/divergence-divergent-i1-used-outside-loop.mir
    M llvm/test/CodeGen/AMDGPU/GlobalISel/divergence-structurizer.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/divergence-structurizer.mir
    M llvm/test/CodeGen/AMDGPU/GlobalISel/divergence-temporal-divergent-i1.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/divergence-temporal-divergent-i1.mir
    M llvm/test/CodeGen/AMDGPU/GlobalISel/divergence-temporal-divergent-reg.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/divergence-temporal-divergent-reg.mir
    M llvm/test/CodeGen/AMDGPU/GlobalISel/divergent-control-flow.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-phi.mir
    M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.div.fmas.ll

  Log Message:
  -----------
  Revert "AMDGPU/GlobalISelDivergenceLowering: select divergent i1 phis" (#79274)

Reverts llvm/llvm-project#78482


  Commit: cfddb59be2124f7ec615f48a2d0395c6fdb1bb56
      https://github.com/llvm/llvm-project/commit/cfddb59be2124f7ec615f48a2d0395c6fdb1bb56
  Author: Mariusz Sikora <mariusz.sikora at amd.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M clang/test/CodeGenOpenCL/amdgpu-features.cl
    M clang/test/CodeGenOpenCL/builtins-amdgcn-fp8.cl
    M llvm/lib/Target/AMDGPU/AMDGPU.td
    M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
    M llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
    M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp
    M llvm/lib/Target/AMDGPU/SIInstrInfo.td
    M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
    M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
    M llvm/lib/Target/AMDGPU/VOP1Instructions.td
    M llvm/lib/Target/AMDGPU/VOP3Instructions.td
    M llvm/lib/Target/AMDGPU/VOPInstructions.td
    M llvm/lib/TargetParser/TargetParser.cpp
    A llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.fp8.dpp.ll
    A llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.fp8.dpp.mir
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.fp8.ll
    M llvm/test/MC/AMDGPU/gfx12_asm_vop1.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop1_dpp16.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop1_dpp8.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop3.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_vop1.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop3_from_vop1_dpp16.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop3_from_vop1_dpp8.s
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop1.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop1_dpp16.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop1_dpp8.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3.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_vop1.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3_from_vop1_dpp16.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3_from_vop1_dpp8.txt

  Log Message:
  -----------
  [AMDGPU][GFX12] VOP encoding and codegen - add support for v_cvt fp8/… (#78414)

…bf8 instructions

    Add VOP1, VOP1_DPP8, VOP1_DPP16, VOP3, VOP3_DPP8, VOP3_DPP16
    instructions that were supported on GFX940 (MI300):
    - V_CVT_F32_FP8
    - V_CVT_F32_BF8
    - V_CVT_PK_F32_FP8
    - V_CVT_PK_F32_BF8
    - V_CVT_PK_FP8_F32
    - V_CVT_PK_BF8_F32
    - V_CVT_SR_FP8_F32
    - V_CVT_SR_BF8_F32

---------

Co-authored-by: Mateja Marjanovic <mateja.marjanovic at amd.com>
Co-authored-by: Mirko Brkušanin <Mirko.Brkusanin at amd.com>


  Commit: 78d8ce316ff6f06f58a7f3eb7f633c4bf3bf3285
      https://github.com/llvm/llvm-project/commit/78d8ce316ff6f06f58a7f3eb7f633c4bf3bf3285
  Author: Ivan Kosarev <ivan.kosarev at amd.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/SIInstrInfo.td
    M llvm/lib/Target/AMDGPU/SMInstructions.td

  Log Message:
  -----------
  [AMDGPU] Require explicit immediate offsets for SGPR+IMM SMEM instructions. (#79131)

As otherwise SGPR+IMM instructions are not distinguishable to SGPR-only
ones in AsmParser, leading to ambiguities.

GFX12 doesn't have special SGPR-only variants, so we still allow
optional immediate offsets for the subtarget.

Also rename the offset operand classes while there.

Part of <https://github.com/llvm/llvm-project/issues/69256>.


  Commit: c83180c1248615cf6ea8842eb4e0cebebba4ab57
      https://github.com/llvm/llvm-project/commit/c83180c1248615cf6ea8842eb4e0cebebba4ab57
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    A llvm/test/Transforms/ConstraintElimination/umin-result-may-be-poison.ll

  Log Message:
  -----------
  [ConstraintElim] Add tests for #78621.

Tests with umin where the result may be poison for
https://github.com/llvm/llvm-project/issues/78621.


  Commit: dee02ee9f8ffc74fea6c54f4c00df16e7ca4c8a1
      https://github.com/llvm/llvm-project/commit/dee02ee9f8ffc74fea6c54f4c00df16e7ca4c8a1
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M clang/lib/AST/Interp/ByteCodeExprGen.cpp
    M clang/lib/AST/Interp/ByteCodeExprGen.h

  Log Message:
  -----------
  [clang][Interp][NFC] Complex elements can only be primitives

So, return a PrimType directly from classifyComplexElementType().


  Commit: 17cfc15d6b9b3773db8353937aac9878d7777b21
      https://github.com/llvm/llvm-project/commit/17cfc15d6b9b3773db8353937aac9878d7777b21
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

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

  Log Message:
  -----------
  Fix spelling typo. NFC

commutatvity -> commutativity


  Commit: 6255bae6c9afe89470f264f903051f64bc15135f
      https://github.com/llvm/llvm-project/commit/6255bae6c9afe89470f264f903051f64bc15135f
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    A llvm/test/CodeGen/X86/icmp-pow2-mask.ll

  Log Message:
  -----------
  [X86] Add test coverage based on #78888


  Commit: 72f10f7eb536da58cb79e13974895cd97d4e1a5f
      https://github.com/llvm/llvm-project/commit/72f10f7eb536da58cb79e13974895cd97d4e1a5f
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/icmp-pow2-mask.ll

  Log Message:
  -----------
  [X86] Fold not(pcmpeq(and(X,CstPow2),0)) -> pcmpeq(and(X,CstPow2),CstPow2)

Fixes #78888


  Commit: 27cfe7a07fc858bd890f2e0980f530a8573748b0
      https://github.com/llvm/llvm-project/commit/27cfe7a07fc858bd890f2e0980f530a8573748b0
  Author: jeanPerier <jperier at nvidia.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    R flang/include/flang/Optimizer/Builder/Array.h
    M flang/include/flang/Optimizer/Builder/BoxValue.h
    M flang/lib/Lower/ConvertVariable.cpp
    M flang/lib/Lower/DirectivesCommon.h
    M flang/lib/Lower/OpenMP.cpp
    M flang/lib/Optimizer/Builder/BoxValue.cpp
    M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
    M flang/lib/Optimizer/Transforms/ArrayValueCopy.cpp
    A flang/test/Lower/HLFIR/assumed-size-cray-pointee.f90
    M flang/test/Lower/HLFIR/cray-pointers.f90
    M flang/test/Lower/Intrinsics/lbound.f90
    M flang/test/Lower/Intrinsics/ubound.f90
    M flang/test/Lower/array-expression-assumed-size.f90
    M flang/test/Lower/cray-pointer.f90

  Log Message:
  -----------
  [flang] Set assumed-size last extent to -1 (#79156)

Currently lowering sets the extents of assumed-size array to "undef"
which was OK as long as the value was not expected to be read.

But when interfacing with the runtime and when passing assumed-size to
assumed-rank, this last extent may be read and must be -1 as specified
in the BIND(C) case in 18.5.3 point 5.

Set this value to -1, and update all the lowering code that was looking
for an undef defining op to identify assumed-size: much safer to
propagate and use semantic info here, the previous check actually did
not work if the array was used in an internal procedure (defining op not
visible anymore).

@clementval and @agozillon, I left assumed-size extent to zero in the
acc/omp bounds op as it was, please double check that is what you want
(I can imagine -1 may create troubles here, and 0 makes some sense as it
would lead to no data transfer).

This also allows removing special cases in UBOUND/LBOUND lowering.

Also disable allocation of cray pointee. This was never intended and
would now lead to crashes with the -1 value for assumed-size cray
pointee.


  Commit: 7fdf608cefa0d9051eb3146ee19c3750e237c799
      https://github.com/llvm/llvm-project/commit/7fdf608cefa0d9051eb3146ee19c3750e237c799
  Author: Mirko Brkušanin <Mirko.Brkusanin at amd.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M clang/include/clang/Basic/BuiltinsAMDGPU.def
    M clang/lib/CodeGen/CGBuiltin.cpp
    A clang/test/CodeGenOpenCL/builtins-amdgcn-gfx12-wmma-w32.cl
    A clang/test/CodeGenOpenCL/builtins-amdgcn-gfx12-wmma-w64.cl
    A clang/test/CodeGenOpenCL/builtins-amdgcn-swmmac-w32.cl
    A clang/test/CodeGenOpenCL/builtins-amdgcn-swmmac-w64.cl
    M clang/test/CodeGenOpenCL/builtins-amdgcn-wmma-w32-gfx10-err.cl
    M clang/test/CodeGenOpenCL/builtins-amdgcn-wmma-w32.cl
    M clang/test/CodeGenOpenCL/builtins-amdgcn-wmma-w64.cl
    A cross-project-tests/amdgpu/builtins-amdgcn-gfx12-wmma-w32.cl
    A cross-project-tests/amdgpu/builtins-amdgcn-gfx12-wmma-w64.cl
    A cross-project-tests/amdgpu/builtins-amdgcn-swmmac-w32.cl
    A cross-project-tests/amdgpu/builtins-amdgcn-swmmac-w64.cl
    M llvm/include/llvm/IR/IntrinsicsAMDGPU.td
    M llvm/lib/Target/AMDGPU/AMDGPUGISel.td
    M llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.h
    M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.h
    M llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
    M llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUSearchableTables.td
    M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
    M llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
    M llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp
    M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp
    M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.h
    M llvm/lib/Target/AMDGPU/SIDefines.h
    M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
    M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
    M llvm/lib/Target/AMDGPU/SIInstrFormats.td
    M llvm/lib/Target/AMDGPU/SIInstrInfo.h
    M llvm/lib/Target/AMDGPU/SIInstrInfo.td
    M llvm/lib/Target/AMDGPU/SIRegisterInfo.td
    M llvm/lib/Target/AMDGPU/VOP3PInstructions.td
    M llvm/lib/Target/AMDGPU/VOPInstructions.td
    M llvm/test/Analysis/UniformityAnalysis/AMDGPU/intrinsics.ll
    A llvm/test/CodeGen/AMDGPU/GlobalISel/wmma-gfx12-w32-f16-f32-matrix-modifiers.ll
    A llvm/test/CodeGen/AMDGPU/GlobalISel/wmma-gfx12-w32-imm.ll
    A llvm/test/CodeGen/AMDGPU/GlobalISel/wmma-gfx12-w32-iu-modifiers.ll
    A llvm/test/CodeGen/AMDGPU/GlobalISel/wmma-gfx12-w32-swmmac-index_key.ll
    A llvm/test/CodeGen/AMDGPU/GlobalISel/wmma-gfx12-w32.ll
    A llvm/test/CodeGen/AMDGPU/GlobalISel/wmma-gfx12-w64-f16-f32-matrix-modifiers.ll
    A llvm/test/CodeGen/AMDGPU/GlobalISel/wmma-gfx12-w64-imm.ll
    A llvm/test/CodeGen/AMDGPU/GlobalISel/wmma-gfx12-w64-iu-modifiers.ll
    A llvm/test/CodeGen/AMDGPU/GlobalISel/wmma-gfx12-w64-swmmac-index_key.ll
    A llvm/test/CodeGen/AMDGPU/GlobalISel/wmma-gfx12-w64.ll
    A llvm/test/CodeGen/AMDGPU/wmma-gfx12-w32-f16-f32-matrix-modifiers.ll
    A llvm/test/CodeGen/AMDGPU/wmma-gfx12-w32-imm.ll
    A llvm/test/CodeGen/AMDGPU/wmma-gfx12-w32-iu-modifiers.ll
    A llvm/test/CodeGen/AMDGPU/wmma-gfx12-w32-swmmac-index_key.ll
    A llvm/test/CodeGen/AMDGPU/wmma-gfx12-w32.ll
    A llvm/test/CodeGen/AMDGPU/wmma-gfx12-w64-f16-f32-matrix-modifiers.ll
    A llvm/test/CodeGen/AMDGPU/wmma-gfx12-w64-imm.ll
    A llvm/test/CodeGen/AMDGPU/wmma-gfx12-w64-iu-modifiers.ll
    A llvm/test/CodeGen/AMDGPU/wmma-gfx12-w64-swmmac-index_key.ll
    A llvm/test/CodeGen/AMDGPU/wmma-gfx12-w64.ll
    A llvm/test/CodeGen/AMDGPU/wmma-hazards-gfx12-w32.mir
    A llvm/test/CodeGen/AMDGPU/wmma-hazards-gfx12-w64.mir
    A llvm/test/MC/AMDGPU/gfx12_asm_wmma_w32.s
    A llvm/test/MC/AMDGPU/gfx12_asm_wmma_w64.s
    A llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_wmma_w32.txt
    A llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_wmma_w64.txt
    M mlir/include/mlir/Dialect/LLVMIR/ROCDLOps.td
    M mlir/test/Target/LLVMIR/rocdl.mlir

  Log Message:
  -----------
  [AMDGPU] Add GFX12 WMMA and SWMMAC instructions (#77795)

Co-authored-by: Petar Avramovic <Petar.Avramovic at amd.com>
Co-authored-by: Piotr Sobczak <piotr.sobczak at amd.com>


  Commit: 89dae798cc77789a43e9a60173f647dae03a65fe
      https://github.com/llvm/llvm-project/commit/89dae798cc77789a43e9a60173f647dae03a65fe
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/include/llvm/Analysis/Loads.h
    M llvm/lib/Analysis/Lint.cpp
    M llvm/lib/Analysis/Loads.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
    M llvm/lib/Transforms/Scalar/JumpThreading.cpp

  Log Message:
  -----------
  [Loads] Use BatchAAResults for available value APIs (NFCI)

This allows caching AA queries both within and across the calls,
and enables us to use a custom AAQI configuration.


  Commit: d1b473c7956c080fe4d784bb89f720fbd28024a6
      https://github.com/llvm/llvm-project/commit/d1b473c7956c080fe4d784bb89f720fbd28024a6
  Author: Danial Klimkin <dklimkin at users.noreply.github.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

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

  Log Message:
  -----------
  Fix bazel build past 7251243315ef66f9b3f32e6f8e9536f701aa0d0a (#79282)

Fix bazel build past 7251243315ef66f9b3f32e6f8e9536f701aa0d0a


  Commit: 5469010ba73701d47498576a433aea5c6e16ba2c
      https://github.com/llvm/llvm-project/commit/5469010ba73701d47498576a433aea5c6e16ba2c
  Author: ostannard <oliver.stannard at arm.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64.td
    M llvm/test/MC/AArch64/armv8.1a-rdma.s
    M llvm/test/MC/AArch64/armv8.2a-dotprod-errors.s
    M llvm/test/MC/AArch64/armv8.2a-dotprod.s
    M llvm/test/MC/AArch64/armv8r-sysreg.s
    M llvm/test/MC/Disassembler/AArch64/armv8.3a-complex.txt
    M llvm/test/MC/Disassembler/AArch64/armv8.3a-js.txt

  Log Message:
  -----------
  [AArch64] FP/SIMD is not mandatory for v8-R (#79004)

The FP/SIMD instructions are optional for v8-R, so they should not be
marked as a dependency of HasV8_0rOps. This had the effect of disabling
some v8R-specific system registers when any of these features was
disabled.

I've moved these features to be enabled by default for Cortex-R82
(currently the only v8-R AArch64 core), matching the previous behavior,
and clang's default.

Based on a patch by Simi Pallipurath <simi.pallipurath at arm.com>


  Commit: 182ab1c7034b951433fb8831b67e7758fe61d4e8
      https://github.com/llvm/llvm-project/commit/182ab1c7034b951433fb8831b67e7758fe61d4e8
  Author: Rainer Orth <ro at gcc.gnu.org>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/lib/Support/BLAKE3/blake3_avx2_x86-64_unix.S
    M llvm/lib/Support/BLAKE3/blake3_avx512_x86-64_unix.S
    M llvm/lib/Support/BLAKE3/blake3_sse2_x86-64_unix.S
    M llvm/lib/Support/BLAKE3/blake3_sse41_x86-64_unix.S

  Log Message:
  -----------
  [Support] Adjust .note.GNU-stack guard in Support/BLAKE3/blake3_*_x86-64_unix.S (#76229)

When using GNU ld 2.41 on FreeBSD 14.0/amd64, there are linker warnings
like
```
/vol/gcc/bin/gld-2.41: warning: blake3_avx512_x86-64_unix.S.o: missing .note.GNU-stack section implies executable stack
/vol/gcc/bin/gld-2.41: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
```
This can be fixed by adjusting the guard of the `.note.GNU-stack`
sections in `blake3_*_x86-64_unix.S` to match `llvm/lib/MC/MCAsmInfoELF.cpp:MCAsmInfoELF::getNonexecutableStackSection` which emits the section on all ELF targets
but Solaris.

Tested on `amd64-pc-freebsd14.0`.


  Commit: 8b43c1be23119c1024bed0a8ce392bc73727e2e2
      https://github.com/llvm/llvm-project/commit/8b43c1be23119c1024bed0a8ce392bc73727e2e2
  Author: Simon Pilgrim <RKSimon at users.noreply.github.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86FixupVectorConstants.cpp
    M llvm/test/CodeGen/X86/2011-20-21-zext-ui2fp.ll
    M llvm/test/CodeGen/X86/any_extend_vector_inreg_of_broadcast.ll
    M llvm/test/CodeGen/X86/any_extend_vector_inreg_of_broadcast_from_memory.ll
    M llvm/test/CodeGen/X86/avx-load-store.ll
    M llvm/test/CodeGen/X86/avx2-arith.ll
    M llvm/test/CodeGen/X86/avx512-shuffles/shuffle-chained-bf16.ll
    M llvm/test/CodeGen/X86/bitreverse.ll
    M llvm/test/CodeGen/X86/combine-srl.ll
    M llvm/test/CodeGen/X86/combine-subo.ll
    M llvm/test/CodeGen/X86/constant-pool-sharing.ll
    M llvm/test/CodeGen/X86/dpbusd.ll
    M llvm/test/CodeGen/X86/dpbusd_const.ll
    M llvm/test/CodeGen/X86/expand-vp-cast-intrinsics.ll
    M llvm/test/CodeGen/X86/fcmp-constant.ll
    M llvm/test/CodeGen/X86/fold-vector-sext-zext.ll
    M llvm/test/CodeGen/X86/half.ll
    M llvm/test/CodeGen/X86/icmp-pow2-mask.ll
    M llvm/test/CodeGen/X86/insert-into-constant-vector.ll
    M llvm/test/CodeGen/X86/insertelement-ones.ll
    M llvm/test/CodeGen/X86/masked_gather_scatter_widen.ll
    M llvm/test/CodeGen/X86/masked_store_trunc.ll
    M llvm/test/CodeGen/X86/memcmp-more-load-pairs.ll
    M llvm/test/CodeGen/X86/memcmp.ll
    M llvm/test/CodeGen/X86/pmaddubsw.ll
    M llvm/test/CodeGen/X86/pr46532.ll
    M llvm/test/CodeGen/X86/pr63108.ll
    M llvm/test/CodeGen/X86/pr74736.ll
    M llvm/test/CodeGen/X86/prefer-avx256-lzcnt.ll
    M llvm/test/CodeGen/X86/pshufb-mask-comments.ll
    M llvm/test/CodeGen/X86/ret-mmx.ll
    M llvm/test/CodeGen/X86/sad.ll
    M llvm/test/CodeGen/X86/sext-vsetcc.ll
    M llvm/test/CodeGen/X86/shrink_vmul.ll
    M llvm/test/CodeGen/X86/shuffle-half.ll
    M llvm/test/CodeGen/X86/shuffle-strided-with-offset-256.ll
    M llvm/test/CodeGen/X86/shuffle-vs-trunc-256.ll
    M llvm/test/CodeGen/X86/shuffle-vs-trunc-512.ll
    M llvm/test/CodeGen/X86/sse2-intrinsics-x86.ll
    M llvm/test/CodeGen/X86/vec_anyext.ll
    M llvm/test/CodeGen/X86/vec_fp_to_int.ll
    M llvm/test/CodeGen/X86/vec_set-A.ll
    M llvm/test/CodeGen/X86/vector-blend.ll
    M llvm/test/CodeGen/X86/vector-constrained-fp-intrinsics.ll
    M llvm/test/CodeGen/X86/vector-fshl-128.ll
    M llvm/test/CodeGen/X86/vector-fshl-256.ll
    M llvm/test/CodeGen/X86/vector-fshl-rot-128.ll
    M llvm/test/CodeGen/X86/vector-fshl-rot-256.ll
    M llvm/test/CodeGen/X86/vector-fshl-rot-sub128.ll
    M llvm/test/CodeGen/X86/vector-fshl-sub128.ll
    M llvm/test/CodeGen/X86/vector-fshr-128.ll
    M llvm/test/CodeGen/X86/vector-fshr-256.ll
    M llvm/test/CodeGen/X86/vector-fshr-rot-128.ll
    M llvm/test/CodeGen/X86/vector-fshr-rot-256.ll
    M llvm/test/CodeGen/X86/vector-fshr-rot-sub128.ll
    M llvm/test/CodeGen/X86/vector-fshr-sub128.ll
    M llvm/test/CodeGen/X86/vector-half-conversions.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i16-stride-3.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i16-stride-5.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i16-stride-6.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i16-stride-7.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i16-stride-8.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i32-stride-3.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i32-stride-4.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i32-stride-6.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i32-stride-7.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i32-stride-8.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i8-stride-2.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i8-stride-4.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i8-stride-5.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i8-stride-6.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i8-stride-7.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i8-stride-8.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
    M llvm/test/CodeGen/X86/vector-interleaved-store-i8-stride-8.ll
    M llvm/test/CodeGen/X86/vector-lzcnt-128.ll
    M llvm/test/CodeGen/X86/vector-lzcnt-256.ll
    M llvm/test/CodeGen/X86/vector-mulfix-legalize.ll
    M llvm/test/CodeGen/X86/vector-reduce-add-mask.ll
    M llvm/test/CodeGen/X86/vector-rotate-128.ll
    M llvm/test/CodeGen/X86/vector-rotate-256.ll
    M llvm/test/CodeGen/X86/vector-shift-ashr-sub128.ll
    M llvm/test/CodeGen/X86/vector-shift-lshr-sub128.ll
    M llvm/test/CodeGen/X86/vector-shift-shl-sub128.ll
    M llvm/test/CodeGen/X86/vector-shuffle-128-v16.ll
    M llvm/test/CodeGen/X86/vector-shuffle-256-v16.ll
    M llvm/test/CodeGen/X86/vector-shuffle-256-v32.ll
    M llvm/test/CodeGen/X86/vector-shuffle-256-v8.ll
    M llvm/test/CodeGen/X86/vector-shuffle-512-v32.ll
    M llvm/test/CodeGen/X86/vector-shuffle-512-v64.ll
    M llvm/test/CodeGen/X86/vector-shuffle-512-v8.ll
    M llvm/test/CodeGen/X86/vector-shuffle-combining.ll
    M llvm/test/CodeGen/X86/vector-shuffle-v1.ll
    M llvm/test/CodeGen/X86/vector-trunc.ll
    M llvm/test/CodeGen/X86/vector-tzcnt-128.ll
    M llvm/test/CodeGen/X86/vselect-constants.ll
    M llvm/test/CodeGen/X86/vselect-post-combine.ll
    M llvm/test/CodeGen/X86/widen_bitcnt.ll
    M llvm/test/CodeGen/X86/x86-interleaved-access.ll
    M llvm/test/CodeGen/X86/zero_extend_vector_inreg.ll
    M llvm/test/CodeGen/X86/zero_extend_vector_inreg_of_broadcast.ll
    M llvm/test/CodeGen/X86/zero_extend_vector_inreg_of_broadcast_from_memory.ll

  Log Message:
  -----------
  [X86] X86FixupVectorConstants - shrink vector load to movsd/movsd/movd/movq 'zero upper' instructions (#79000)

If we're loading a vector constant that is known to be zero in the upper elements, then attempt to shrink the constant and just scalar load the lower 32/64 bits.

Always chose the vzload/broadcast with the smallest constant load, and prefer vzload over broadcasts for same bitwidth to avoid domain flips (mainly a AVX1 issue).

Fixes #73783


  Commit: 7143b451d71fe314730f7610d7908e3b9611815c
      https://github.com/llvm/llvm-project/commit/7143b451d71fe314730f7610d7908e3b9611815c
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    A llvm/test/Transforms/JumpThreading/pr79175.ll

  Log Message:
  -----------
  [JumpThreading] Add test for #79175 (NFC)


  Commit: c3e77070489979788788ef479f8932ac460b675b
      https://github.com/llvm/llvm-project/commit/c3e77070489979788788ef479f8932ac460b675b
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

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

  Log Message:
  -----------
  [clang][AST][NFC] Turn a isa<> + cast<> into dynamic_cast<>


  Commit: 98509c7f9792c79b05a41b95c24607f6dd489c5a
      https://github.com/llvm/llvm-project/commit/98509c7f9792c79b05a41b95c24607f6dd489c5a
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/test/CodeGen/AArch64/vec3-loads-ext-trunc-stores.ll

  Log Message:
  -----------
  [AArch64] Add vec3 tests with different load/store alignments.

Add extra tests with different load/store alignments for
https://github.com/llvm/llvm-project/pull/78637.


  Commit: 90ba33099cbb17e7c159e9ebc5a512037db99d6d
      https://github.com/llvm/llvm-project/commit/90ba33099cbb17e7c159e9ebc5a512037db99d6d
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M clang/test/CodeGen/PowerPC/builtins-ppc-pair-mma.c
    M clang/test/CodeGen/aarch64-ls64-inline-asm.c
    M clang/test/CodeGen/attr-arm-sve-vector-bits-bitcast.c
    M clang/test/CodeGen/attr-counted-by.c
    M clang/test/CodeGen/attr-riscv-rvv-vector-bits-bitcast.c
    M clang/test/CodeGen/cleanup-destslot-simple.c
    M clang/test/CodeGen/hexagon-brev-ld-ptr-incdec.c
    M clang/test/CodeGen/ms-intrinsics.c
    M clang/test/CodeGen/nofpclass.c
    M clang/test/CodeGen/union-tbaa1.c
    M clang/test/CodeGenCXX/RelativeVTablesABI/dynamic-cast.cpp
    M clang/test/CodeGenCXX/RelativeVTablesABI/type-info.cpp
    M clang/test/CodeGenCXX/microsoft-abi-dynamic-cast.cpp
    M clang/test/CodeGenCXX/microsoft-abi-typeid.cpp
    M clang/test/CodeGenObjC/arc-foreach.m
    M clang/test/CodeGenObjCXX/arc-cxx11-init-list.mm
    M clang/test/Headers/__clang_hip_math.hip
    M clang/test/OpenMP/bug57757.cpp
    M flang/test/HLFIR/no-block-merging.fir
    M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
    M llvm/test/Analysis/BasicAA/featuretest.ll
    M llvm/test/CodeGen/AMDGPU/vector-alloca-bitcast.ll
    M llvm/test/CodeGen/BPF/preserve-static-offset/load-inline.ll
    M llvm/test/CodeGen/BPF/preserve-static-offset/load-unroll-inline.ll
    M llvm/test/CodeGen/BPF/preserve-static-offset/load-unroll.ll
    M llvm/test/CodeGen/BPF/preserve-static-offset/store-unroll-inline.ll
    M llvm/test/CodeGen/Hexagon/autohvx/vector-align-tbaa.ll
    M llvm/test/Transforms/Coroutines/coro-async.ll
    M llvm/test/Transforms/Coroutines/coro-retcon-alloca-opaque-ptr.ll
    M llvm/test/Transforms/Coroutines/coro-retcon-alloca.ll
    M llvm/test/Transforms/Coroutines/coro-retcon-once-value.ll
    M llvm/test/Transforms/Coroutines/coro-retcon-resume-values.ll
    M llvm/test/Transforms/Coroutines/coro-swifterror.ll
    M llvm/test/Transforms/InstCombine/2007-03-25-BadShiftMask.ll
    M llvm/test/Transforms/InstCombine/2009-01-08-AlignAlloca.ll
    M llvm/test/Transforms/InstCombine/2009-02-20-InstCombine-SROA.ll
    M llvm/test/Transforms/InstCombine/X86/x86-addsub-inseltpoison.ll
    M llvm/test/Transforms/InstCombine/X86/x86-addsub.ll
    M llvm/test/Transforms/InstCombine/add3.ll
    M llvm/test/Transforms/InstCombine/array.ll
    M llvm/test/Transforms/InstCombine/assume.ll
    M llvm/test/Transforms/InstCombine/cast_phi.ll
    M llvm/test/Transforms/InstCombine/catchswitch-phi.ll
    M llvm/test/Transforms/InstCombine/compare-alloca.ll
    M llvm/test/Transforms/InstCombine/extractvalue.ll
    M llvm/test/Transforms/InstCombine/gep-addrspace.ll
    M llvm/test/Transforms/InstCombine/gep-canonicalize-constant-indices.ll
    M llvm/test/Transforms/InstCombine/gep-combine-loop-invariant.ll
    M llvm/test/Transforms/InstCombine/gep-custom-dl.ll
    M llvm/test/Transforms/InstCombine/gep-merge-constant-indices.ll
    M llvm/test/Transforms/InstCombine/gep-vector-indices.ll
    M llvm/test/Transforms/InstCombine/gep-vector.ll
    M llvm/test/Transforms/InstCombine/gepphigep.ll
    M llvm/test/Transforms/InstCombine/getelementptr.ll
    M llvm/test/Transforms/InstCombine/icmp-custom-dl.ll
    M llvm/test/Transforms/InstCombine/icmp-gep.ll
    M llvm/test/Transforms/InstCombine/indexed-gep-compares.ll
    M llvm/test/Transforms/InstCombine/intptr1.ll
    M llvm/test/Transforms/InstCombine/intptr2.ll
    M llvm/test/Transforms/InstCombine/intptr3.ll
    M llvm/test/Transforms/InstCombine/intptr4.ll
    M llvm/test/Transforms/InstCombine/intptr5.ll
    M llvm/test/Transforms/InstCombine/intptr7.ll
    M llvm/test/Transforms/InstCombine/load-store-forward.ll
    M llvm/test/Transforms/InstCombine/load.ll
    M llvm/test/Transforms/InstCombine/loadstore-metadata.ll
    M llvm/test/Transforms/InstCombine/memchr-5.ll
    M llvm/test/Transforms/InstCombine/memchr-9.ll
    M llvm/test/Transforms/InstCombine/memcmp-3.ll
    M llvm/test/Transforms/InstCombine/memcmp-4.ll
    M llvm/test/Transforms/InstCombine/memcmp-5.ll
    M llvm/test/Transforms/InstCombine/memcmp-6.ll
    M llvm/test/Transforms/InstCombine/memcmp-7.ll
    M llvm/test/Transforms/InstCombine/memcpy_alloca.ll
    M llvm/test/Transforms/InstCombine/memrchr-5.ll
    M llvm/test/Transforms/InstCombine/memset2.ll
    M llvm/test/Transforms/InstCombine/multi-size-address-space-pointer.ll
    M llvm/test/Transforms/InstCombine/non-integral-pointers.ll
    M llvm/test/Transforms/InstCombine/opaque-ptr.ll
    M llvm/test/Transforms/InstCombine/phi-equal-incoming-pointers.ll
    M llvm/test/Transforms/InstCombine/phi-timeout.ll
    M llvm/test/Transforms/InstCombine/phi.ll
    M llvm/test/Transforms/InstCombine/pr39908.ll
    M llvm/test/Transforms/InstCombine/pr44242.ll
    M llvm/test/Transforms/InstCombine/pr58901.ll
    M llvm/test/Transforms/InstCombine/ptr-replace-alloca.ll
    M llvm/test/Transforms/InstCombine/select-cmp-br.ll
    M llvm/test/Transforms/InstCombine/select-gep.ll
    M llvm/test/Transforms/InstCombine/shift.ll
    M llvm/test/Transforms/InstCombine/sink_sideeffecting_instruction.ll
    M llvm/test/Transforms/InstCombine/sprintf-2.ll
    M llvm/test/Transforms/InstCombine/statepoint-cleanup.ll
    M llvm/test/Transforms/InstCombine/str-int-3.ll
    M llvm/test/Transforms/InstCombine/str-int-4.ll
    M llvm/test/Transforms/InstCombine/str-int-5.ll
    M llvm/test/Transforms/InstCombine/str-int.ll
    M llvm/test/Transforms/InstCombine/strcall-bad-sig.ll
    M llvm/test/Transforms/InstCombine/strcall-no-nul.ll
    M llvm/test/Transforms/InstCombine/strlen-7.ll
    M llvm/test/Transforms/InstCombine/strlen-9.ll
    M llvm/test/Transforms/InstCombine/strncmp-4.ll
    M llvm/test/Transforms/InstCombine/strncmp-5.ll
    M llvm/test/Transforms/InstCombine/strncmp-6.ll
    M llvm/test/Transforms/InstCombine/sub.ll
    M llvm/test/Transforms/InstCombine/unpack-fca.ll
    M llvm/test/Transforms/InstCombine/vec_demanded_elts-inseltpoison.ll
    M llvm/test/Transforms/InstCombine/vec_demanded_elts.ll
    M llvm/test/Transforms/InstCombine/vec_gep_scalar_arg-inseltpoison.ll
    M llvm/test/Transforms/InstCombine/vec_gep_scalar_arg.ll
    M llvm/test/Transforms/InstCombine/vscale_gep.ll
    M llvm/test/Transforms/InstCombine/wcslen-5.ll
    M llvm/test/Transforms/LoopUnroll/ARM/upperbound.ll
    M llvm/test/Transforms/LoopUnroll/peel-loop.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/deterministic-type-shrinkage.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/intrinsiccost.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-cond-inv-loads.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-interleaved-accesses.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-widen-phi.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/vector-reverse-mask4.ll
    M llvm/test/Transforms/LoopVectorize/AMDGPU/packed-math.ll
    M llvm/test/Transforms/LoopVectorize/ARM/mve-qabs.ll
    M llvm/test/Transforms/LoopVectorize/ARM/mve-reductions.ll
    M llvm/test/Transforms/LoopVectorize/ARM/mve-selectandorcost.ll
    M llvm/test/Transforms/LoopVectorize/ARM/pointer_iv.ll
    M llvm/test/Transforms/LoopVectorize/X86/float-induction-x86.ll
    M llvm/test/Transforms/LoopVectorize/X86/interleaving.ll
    M llvm/test/Transforms/LoopVectorize/X86/intrinsiccost.ll
    M llvm/test/Transforms/LoopVectorize/X86/invariant-store-vectorization.ll
    M llvm/test/Transforms/LoopVectorize/X86/metadata-enable.ll
    M llvm/test/Transforms/LoopVectorize/X86/pr23997.ll
    M llvm/test/Transforms/LoopVectorize/X86/small-size.ll
    M llvm/test/Transforms/LoopVectorize/X86/x86-interleaved-store-accesses-with-gaps.ll
    M llvm/test/Transforms/LoopVectorize/consecutive-ptr-uniforms.ll
    M llvm/test/Transforms/LoopVectorize/extract-last-veclane.ll
    M llvm/test/Transforms/LoopVectorize/float-induction.ll
    M llvm/test/Transforms/LoopVectorize/induction.ll
    M llvm/test/Transforms/LoopVectorize/interleaved-accesses.ll
    M llvm/test/Transforms/LoopVectorize/reduction-inloop-uf4.ll
    M llvm/test/Transforms/LoopVectorize/runtime-check.ll
    M llvm/test/Transforms/LoopVectorize/scalar_after_vectorization.ll
    M llvm/test/Transforms/LoopVectorize/vector-geps.ll
    M llvm/test/Transforms/LowerMatrixIntrinsics/multiply-fused-dominance.ll
    M llvm/test/Transforms/LowerMatrixIntrinsics/multiply-fused-loops.ll
    M llvm/test/Transforms/LowerMatrixIntrinsics/multiply-fused-multiple-blocks.ll
    M llvm/test/Transforms/LowerMatrixIntrinsics/multiply-fused.ll
    M llvm/test/Transforms/LowerMatrixIntrinsics/multiply-minimal.ll
    M llvm/test/Transforms/PhaseOrdering/AArch64/hoisting-sinking-required-for-vectorization.ll
    M llvm/test/Transforms/PhaseOrdering/AArch64/peel-multiple-unreachable-exits-for-vectorization.ll
    M llvm/test/Transforms/PhaseOrdering/AArch64/quant_4x4.ll
    M llvm/test/Transforms/PhaseOrdering/AArch64/sinking-vs-if-conversion.ll
    M llvm/test/Transforms/PhaseOrdering/ARM/arm_mult_q15.ll
    M llvm/test/Transforms/PhaseOrdering/X86/excessive-unrolling.ll
    M llvm/test/Transforms/PhaseOrdering/X86/hoist-load-of-baseptr.ll
    M llvm/test/Transforms/PhaseOrdering/X86/pixel-splat.ll
    M llvm/test/Transforms/PhaseOrdering/X86/pr48844-br-to-switch-vectorization.ll
    M llvm/test/Transforms/PhaseOrdering/X86/pr50555.ll
    M llvm/test/Transforms/PhaseOrdering/X86/speculation-vs-tbaa.ll
    M llvm/test/Transforms/PhaseOrdering/X86/spurious-peeling.ll
    M llvm/test/Transforms/PhaseOrdering/X86/vdiv.ll
    M llvm/test/Transforms/PhaseOrdering/X86/vec-shift.ll
    M llvm/test/Transforms/PhaseOrdering/basic.ll
    M llvm/test/Transforms/PhaseOrdering/loop-access-checks.ll
    M llvm/test/Transforms/PhaseOrdering/pr39282.ll
    M llvm/test/Transforms/PhaseOrdering/simplifycfg-options.ll
    M llvm/test/Transforms/PhaseOrdering/switch_with_geps.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/gather-cost.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/gather-reduce.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/loadorder.ll
    M llvm/test/Transforms/SLPVectorizer/WebAssembly/no-vectorize-rotate.ll
    M llvm/test/Transforms/SLPVectorizer/X86/operandorder.ll
    M llvm/test/Transforms/SLPVectorizer/X86/opt.ll
    M llvm/test/Transforms/SLPVectorizer/X86/pr46983.ll
    M llvm/test/Transforms/SLPVectorizer/X86/pr47629-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/X86/pr47629.ll
    M llvm/test/Transforms/SampleProfile/pseudo-probe-instcombine.ll
    M llvm/test/Transforms/Util/strip-gc-relocates.ll

  Log Message:
  -----------
  [InstCombine] Canonicalize constant GEPs to i8 source element type (#68882)

This patch canonicalizes getelementptr instructions with constant
indices to use the `i8` source element type. This makes it easier for
optimizations to recognize that two GEPs are identical, because they
don't need to see past many different ways to express the same offset.

This is a first step towards
https://discourse.llvm.org/t/rfc-replacing-getelementptr-with-ptradd/68699.
This is limited to constant GEPs only for now, as they have a clear
canonical form, while we're not yet sure how exactly to deal with
variable indices.

The test llvm/test/Transforms/PhaseOrdering/switch_with_geps.ll gives
two representative examples of the kind of optimization improvement we
expect from this change. In the first test SimplifyCFG can now realize
that all switch branches are actually the same. In the second test it
can convert it into simple arithmetic. These are representative of
common optimization failures we see in Rust.

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


  Commit: 3d91d9613e294b242d853039209b40a0cb7853f2
      https://github.com/llvm/llvm-project/commit/3d91d9613e294b242d853039209b40a0cb7853f2
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/lib/Transforms/Scalar/ConstraintElimination.cpp
    M llvm/test/Transforms/ConstraintElimination/minmax.ll
    M llvm/test/Transforms/ConstraintElimination/umin-result-may-be-poison.ll

  Log Message:
  -----------
  [ConstraintElim] Make sure min/max intrinsic results are not poison.

The result of umin may be poison and in that case the added constraints
are not be valid in contexts where poison doesn't cause UB. Only queue
facts for min/max intrinsics if the result is guaranteed to not be
poison.

This could be improved in the future, by only adding the fact when
solving conditions using the result value.

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


  Commit: 382f70a877f00ab71f3cb5ba461b52e1b59cd292
      https://github.com/llvm/llvm-project/commit/382f70a877f00ab71f3cb5ba461b52e1b59cd292
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M libcxx/include/string

  Log Message:
  -----------
  [libc++][NFC] Rewrite function call on two lines for clarity (#79141)

Previously, there was a ternary conditional with a less-than comparison
appearing inside a template argument, which was really confusing because
of the <...> of the function template. This patch rewrites the same
statement on two lines for clarity.


  Commit: 03a9f07e189db792b001c4001981d6e2da880221
      https://github.com/llvm/llvm-project/commit/03a9f07e189db792b001c4001981d6e2da880221
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M libcxx/include/__algorithm/ranges_max.h
    M libcxx/include/__algorithm/ranges_min.h

  Log Message:
  -----------
  [libc++][NFC] Fix leftover && in comment


  Commit: 5db2e5801dfec79bad3c804da0f53871a2664373
      https://github.com/llvm/llvm-project/commit/5db2e5801dfec79bad3c804da0f53871a2664373
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M .github/workflows/issue-release-workflow.yml

  Log Message:
  -----------
  Add necessary permissions to release issue workflow (#79272)

The `/cherry-pick` command needs `issues: write` to post a comment on
the issue. The `/branch` command also posts a comment, and also needs
`pull-requests: write` to open a PR.

This should fix the failure encountered at
https://github.com/llvm/llvm-project/issues/79253#issuecomment-1907850027.


  Commit: 380ac53dfa05792c6f9fd0a4aba542f8c7e5e17c
      https://github.com/llvm/llvm-project/commit/380ac53dfa05792c6f9fd0a4aba542f8c7e5e17c
  Author: Felipe de Azevedo Piovezan <fpiovezan at apple.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h
    M llvm/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp
    A llvm/test/CodeGen/X86/dwarf-headers.o
    M llvm/test/DebugInfo/Generic/debug-names-one-cu.ll
    M llvm/test/DebugInfo/X86/debug-names-dwarf64.ll
    M llvm/test/DebugInfo/X86/debug-names-parents-same-offset.ll
    M llvm/test/DebugInfo/X86/debug-names-types.ll
    M llvm/test/tools/dsymutil/ARM/accel-imported-declarations.test

  Log Message:
  -----------
  [DebugNames] Implement Entry::GetParentEntry query (#78760)

This commit introduces a helper function to DWARFAcceleratorTable::Entry
which follows DW_IDX_Parent attributes to returns the corresponding
parent Entry in the table.

It is tested by enhancing dwarfdump so that it now prints:

1. When data is corrupt.
2. When parent information is present, but the parent is not indexed.
3. The parent entry offset, when the parent is present and indexed. This
is printed in terms a real entry offset (the same that gets printed at
the start of each entry: "Entry @ 0x..."), instead of the encoded number
in the table (which is an offset from the start off the Entry list).
This makes it easy to visually inspect the dwarfdump and check what the
parent is.


  Commit: f03a60d4d2fc687059c8bb667d1de37713a5a64b
      https://github.com/llvm/llvm-project/commit/f03a60d4d2fc687059c8bb667d1de37713a5a64b
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M .github/workflows/issue-release-workflow.yml

  Log Message:
  -----------
  Use correct tokens in release issue workflow (#79300)

We should use the normal github.token for interacting with issues/PRs on
the repo, and separately pass the `--branch-repo-token` for creating the
branch in the llvmbot repo.


  Commit: 70fc9703788e8965813c5b677a85cb84b66671b6
      https://github.com/llvm/llvm-project/commit/70fc9703788e8965813c5b677a85cb84b66671b6
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
    M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
    M llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.h
    M llvm/test/CodeGen/AMDGPU/indirect-call-known-callees.ll
    A llvm/test/CodeGen/AMDGPU/lower-work-group-id-intrinsics-hsa.ll
    A llvm/test/CodeGen/AMDGPU/lower-work-group-id-intrinsics-pal.ll
    R llvm/test/CodeGen/AMDGPU/lower-work-group-id-intrinsics.ll
    M llvm/test/CodeGen/AMDGPU/workgroup-id-in-arch-sgprs.ll

  Log Message:
  -----------
  [AMDGPU] Move architected SGPR implementation into isel (#79120)


  Commit: aaa93ce7323332d8290b8f563d4d71689c1094c5
      https://github.com/llvm/llvm-project/commit/aaa93ce7323332d8290b8f563d4d71689c1094c5
  Author: Tom Stellard <tstellar at redhat.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M compiler-rt/lib/builtins/CMakeLists.txt

  Log Message:
  -----------
  compiler-rt: Fix FLOAT16 feature detection

CMAKE_TRY_COMPILE_TARGET_TYPE defaults to EXECUTABLE, which causes
any feature detection code snippet without a main function to fail,
so we need to make sure it gets explicitly set to STATIC_LIBRARY.

Bug: https://github.com/ROCm/rocFFT/issues/439
Bug: https://github.com/ROCm/rocBLAS/issues/1350
Bug: https://bugs.gentoo.org/916069
Closes: https://github.com/llvm/llvm-project/pull/69842

Reviewed by: thesamesam, mgorny


  Commit: 777eb35614eff30f8fe8ca7729b9c04846a09476
      https://github.com/llvm/llvm-project/commit/777eb35614eff30f8fe8ca7729b9c04846a09476
  Author: felixh5678 <157516335+felixh5678 at users.noreply.github.com>
  Date:   2024-01-24 (Wed, 24 Jan 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
    M libc/src/math/generic/CMakeLists.txt
    A libc/src/math/generic/sqrtf128.cpp
    A libc/src/math/sqrtf128.h
    M libc/test/src/math/smoke/CMakeLists.txt
    A libc/test/src/math/smoke/generic_sqrtf128_test.cpp
    A libc/test/src/math/smoke/sqrtf128_test.cpp

  Log Message:
  -----------
  [libc] Add sqrtf128 implementation for Linux x86_64. (#79195)

Co-authored-by: Tue Ly <lntue at google.com>
Co-authored-by: Felix <felix at Dirks-MacBook-Pro.local>


  Commit: 9fc890b5a06c5e4a014951a1dd7ad7ba592ceaaf
      https://github.com/llvm/llvm-project/commit/9fc890b5a06c5e4a014951a1dd7ad7ba592ceaaf
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

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

  Log Message:
  -----------
  [clang][Parse][NFC] Make a local variable const


  Commit: 0065d06760c0fba786b7b5ff061b3b3efa08bfbc
      https://github.com/llvm/llvm-project/commit/0065d06760c0fba786b7b5ff061b3b3efa08bfbc
  Author: Jeremy Morse <jeremy.morse at sony.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/lib/Transforms/IPO/Attributor.cpp
    M llvm/test/Transforms/Attributor/ArgumentPromotion/alignment.ll

  Log Message:
  -----------
  [NFC][DebugInfo] Maintain RemoveDIs flag when attributor creates functions (#79143)

We're using this flag (IsNewDbgInfoFormat) to detect the boundaries in
LLVM of what's treating debug-info as intrinsics (i.e. dbg.value), and
what's using DPValue objects (the non-intrinsic replacement). The
attributor tends to create new wrapper functions and doesn't insert them
into Modules in the usual way, thus we have to manually update that flag
to signal what debug-info mode it's using.

I've added some --try-experimental-debuginfo-iterators RUN lines to
tests that would otherwise crash because of this, so that they're
exercised by our new-debuginfo-iterators buildbot.

NB: there's an attributor test with a dbg.value in it, however
attributes re-order themselves in RemoveDIs mode for various reasons, so
we're going to address that in a different patch.


  Commit: dc5b4daae7077b644753e53f175d0f5785fede49
      https://github.com/llvm/llvm-project/commit/dc5b4daae7077b644753e53f175d0f5785fede49
  Author: quic-asaravan <156995626+quic-asaravan at users.noreply.github.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp
    M llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.h
    M llvm/lib/Target/Hexagon/HexagonISelLowering.cpp
    M llvm/lib/Target/Hexagon/HexagonISelLowering.h
    A llvm/test/CodeGen/Hexagon/inline-division-space.ll
    A llvm/test/CodeGen/Hexagon/inline-division.ll

  Log Message:
  -----------
  [HEXAGON] Inlining Division (#79021)

This patch inlines float division function calls for hexagon.

Co-authored-by: Awanish Pandey <awanpand at codeaurora.org>


  Commit: 31f41f0984303655acf4eaa8d09643a624b1ccb0
      https://github.com/llvm/llvm-project/commit/31f41f0984303655acf4eaa8d09643a624b1ccb0
  Author: Christian Sigg <csigg at google.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

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

  Log Message:
  -----------
  [clang][bazel] Fix BUILD after 4a582845597e97d245e8ffdc14281f922b835e56.


  Commit: 2e81ac25b4e2bfdc71aac19a911525a7f35680be
      https://github.com/llvm/llvm-project/commit/2e81ac25b4e2bfdc71aac19a911525a7f35680be
  Author: Ivan Kosarev <ivan.kosarev at amd.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
    M llvm/lib/Target/AMDGPU/SIRegisterInfo.td

  Log Message:
  -----------
  [AMDGPU][NFC] Simplify AGPR/VGPR load/store operand definitions. (#79289)

Part of <https://github.com/llvm/llvm-project/issues/62629>.


  Commit: ca8605a78b8dd531c164f6a48a180ccf2770d042
      https://github.com/llvm/llvm-project/commit/ca8605a78b8dd531c164f6a48a180ccf2770d042
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M .ci/generate-buildkite-pipeline-premerge

  Log Message:
  -----------
  [ci] Remove bits that are unused since we stopped using Phabricator


  Commit: 17db9efe9274e72f42e7e68103dab920ee494ac8
      https://github.com/llvm/llvm-project/commit/17db9efe9274e72f42e7e68103dab920ee494ac8
  Author: Jan Leyonberg <jan_sjodin at yahoo.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
    M mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
    M mlir/test/Dialect/OpenMP/invalid.mlir
    M mlir/test/Dialect/OpenMP/ops.mlir

  Log Message:
  -----------
  [OpenMP][MLIR] Add omp.distribute op to the OMP dialect (#67720)

This patch adds the omp.distribute operation to the OMP dialect. The
purpose is to be able to represent the distribute construct in OpenMP
with the associated clauses. The effect of the operation is to
distributes the loop iterations of the loop(s) contained inside the
region across multiple teams.


  Commit: 8d43dad9b86ad0f72100b6f75450f2982f2663b9
      https://github.com/llvm/llvm-project/commit/8d43dad9b86ad0f72100b6f75450f2982f2663b9
  Author: Christian Sigg <chsigg at users.noreply.github.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

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

  Log Message:
  -----------
  [clang][bazel] Fix BUILD after 4a582845597e97d245e8ffdc14281f922b835e56.


  Commit: 6a0118cec079f5963dc5a7a3d9423c55f08b6dad
      https://github.com/llvm/llvm-project/commit/6a0118cec079f5963dc5a7a3d9423c55f08b6dad
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M libcxx/docs/index.rst

  Log Message:
  -----------
  [libc++][docs] Remove mention of Phabricator on the landing page


  Commit: fc364e26845ce5529caf9f88abcc5a5531d1f59f
      https://github.com/llvm/llvm-project/commit/fc364e26845ce5529caf9f88abcc5a5531d1f59f
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M libunwind/docs/index.rst

  Log Message:
  -----------
  [libunwind][doc] Remove reference to Phabricator from the landing page


  Commit: 56aa77e1193b7abe65bf3ec16e0f37972345b9f2
      https://github.com/llvm/llvm-project/commit/56aa77e1193b7abe65bf3ec16e0f37972345b9f2
  Author: Danial Klimkin <dklimkin at users.noreply.github.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

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

  Log Message:
  -----------
  Fix bazel build past 4a582845597e97d245e8ffdc14281f922b835e56 (#79318)

and keep things sorted.


  Commit: 396b6bbc5ecef93fce09d6463f47b44dc501d2aa
      https://github.com/llvm/llvm-project/commit/396b6bbc5ecef93fce09d6463f47b44dc501d2aa
  Author: Philip Reames <preames at rivosinc.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-interleave.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-int-interleave.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-int-shuffles.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-interleaved-access.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-shuffle-exact-vlen.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-shuffle-transpose.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-shufflevector-vnsrl.ll
    M llvm/test/CodeGen/RISCV/rvv/vector-deinterleave-fixed.ll

  Log Message:
  -----------
  [RISCV] Recurse on second operand of two operand shuffles (#79197)

This builds on bdc41106ee48dce59c500c9a3957af947f30c8c3.

This change completes the migration to a recursive shuffle lowering
strategy where when we encounter an unknown two argument shuffle, we
lower each operand as a single source permute, and then use a vselect
(i.e. a vmerge) to combine the results. This relies for code quality on
the post-isel combine which will aggressively fold that vmerge back into
the materialization of the second operand if possible.

Note: The change includes only the most immediately obvious of the
stylistic cleanup. There's a bunch of code movement that this enables
that I'll do as a separate patch as rolling it into this creates an
unreadable diff.


  Commit: 611843d24bd1cfa8b6bf62b48635dbd3a6281759
      https://github.com/llvm/llvm-project/commit/611843d24bd1cfa8b6bf62b48635dbd3a6281759
  Author: Christian Sigg <chsigg at users.noreply.github.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

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

  Log Message:
  -----------
  [llvm][bazel] Fix BUILD.


  Commit: 4079aab8d80233586a9cd3f7be27bece4c21ea16
      https://github.com/llvm/llvm-project/commit/4079aab8d80233586a9cd3f7be27bece4c21ea16
  Author: Christian Sigg <chsigg at users.noreply.github.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

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

  Log Message:
  -----------
  [llvm][bazel] Fix BUILD


  Commit: 56444d5687818938a6ce798e7221aa920c54098e
      https://github.com/llvm/llvm-project/commit/56444d5687818938a6ce798e7221aa920c54098e
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/utils/git/github-automation.py

  Log Message:
  -----------
  Remove fork handling from release issue workflow (#79310)

This is currently broken, because the check is performed on the wrong
repository. repo here is llvm/llvm-project, which is not a fork (so this
will always trigger), then we'll push a new branch to
llvmbot/llvm-project, and then again set the wrong owner, so we'll look
for the branch in llvm/llvm-project rather than llvmbot/llvm-project.

Rather than fixing this, I'm removing the code entirely, as it shouldn't
be needed anymore (llvmbot/llvm-project is a fork of llvm/llvm-project).


  Commit: 6c1dbd5359c4336d03b11faeaea8459b421f2c5c
      https://github.com/llvm/llvm-project/commit/6c1dbd5359c4336d03b11faeaea8459b421f2c5c
  Author: Jan Svoboda <jan_svoboda at apple.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M clang/include/clang/Basic/DirectoryEntry.h
    M clang/include/clang/Basic/FileEntry.h
    M clang/lib/Basic/FileManager.cpp
    M clang/unittests/Basic/FileManagerTest.cpp
    M llvm/include/llvm/Support/VirtualFileSystem.h
    M llvm/lib/Support/VirtualFileSystem.cpp
    M llvm/unittests/Support/VirtualFileSystemTest.cpp

  Log Message:
  -----------
  [clang] NFC: Remove `{File,Directory}Entry::getName()` (#74910)

The files and directories that Clang accesses are uniqued by their
inode. For each inode `FileManager` will create exactly one `FileEntry`
or `DirectoryEntry` object, which makes answering the question _"Are
these two files/directories the same?"_ a simple pointer equality check.

However, since the same inode can be accessed through multiple different
paths, asking the `FileEntry` or `DirectoryEntry` object _"What is your
name?"_ doesn't have clear semantics. In c0ff9908 we started reporting
the most recent name used to access the entry, which turned out to be
necessary for Clang modules. However, the long-term solution has always
been to explicitly track the as-requested name. This has been
implemented in 4dc5573a as `FileEntryRef` and `DirectoryEntryRef`.

The `DirectoryEntry::getName()` interface has been deprecated since the
Clang 17 release and `FileEntry::getName()` since Clang 18. We have
replaced uses of these deprecated APIs in `main` with
`DirectoryEntryRef::getName()` and `FileEntryRef::getName()`
respectively.

This makes it possible to remove `{File,Directory}Entry::getName()` for
good along with the `FileManager` code that implements them.


  Commit: fd817249f4d50caa7a8986a37cdf712dfdf5ad70
      https://github.com/llvm/llvm-project/commit/fd817249f4d50caa7a8986a37cdf712dfdf5ad70
  Author: Philip Reames <preames at rivosinc.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

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

  Log Message:
  -----------
  [RISCV] Sink code into using branch in shuffle lowering [nfc]

Follow up to 396b6bbc, sink code into consuming branch, and fix one
comment I realized used the misleading wording.  (Permute is a specific
sub-type of single source shuffle.)


  Commit: 8abf8d124ae346016c56209de7f57b85671d4367
      https://github.com/llvm/llvm-project/commit/8abf8d124ae346016c56209de7f57b85671d4367
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M lld/ELF/InputSection.cpp
    M lld/test/ELF/dead-reloc-in-nonalloc.s

  Log Message:
  -----------
  [ELF] Don't resolve relocations referencing SHN_ABS to tombstone in non-SHF_ALLOC sections (#79238)

A SHN_ABS symbol has never been considered for
InputSection::relocateNonAlloc.
Before #74686, the code did made it work in the absence of `-z
dead-reloc-in-nonalloc=`.
There is now a report about such SHN_ABS uses

(https://github.com/llvm/llvm-project/pull/74686#issuecomment-1904101711)
and I think it makes sense for non-SHF_ALLOC to support SHN_ABS, like
SHF_ALLOC sections do.

```
// clang -g
__attribute__((weak)) int symbol;
int *foo() { return &symbol; }

0x00000023:   DW_TAG_variable [2]   (0x0000000c)
                ...
                DW_AT_location [DW_FORM_exprloc]        (DW_OP_addrx 0x0)

```

.debug_addr references `symbol`, which can be redefined by a symbol
assignment or --defsym to become a SHN_ABS symbol.

The problem is that `!sym.getOutputSection()` cannot discern SHN_ABS
from a symbol whose section has been discarded. Since commit
1981b1b6b92f7579a30c9ed32dbdf3bc749c1b40, a symbol relative to a
discarded section is changed to `Undefined`, so the `SHN_ABS` check
become trivial.

We currently apply tombstone for a relocation referencing
`SharedSymbol`. This patch does not change the behavior.


  Commit: e99c8aef5d618f5fe0baf643e3a31ee911e909f1
      https://github.com/llvm/llvm-project/commit/e99c8aef5d618f5fe0baf643e3a31ee911e909f1
  Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M flang/lib/Lower/OpenACC.cpp
    M flang/test/Lower/OpenACC/acc-loop.f90

  Log Message:
  -----------
  [flang][openacc] Lower DO CONCURRENT with acc loop (#79223)

Lower basic DO CONCURRENT with acc loop construct. The DO CONCURRENT is
lowered to an acc.loop operation.

This does not currently cover the DO CONCURRENT with locality specs.


  Commit: 5e894771d9517a0cec3bc12480c1549080aaf5b2
      https://github.com/llvm/llvm-project/commit/5e894771d9517a0cec3bc12480c1549080aaf5b2
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    R .ci/generate-buildkite-pipeline-scheduled

  Log Message:
  -----------
  [ci] Remove unused generate-buildkite-pipeline-scheduled script (#79320)

The "scheduled build" pipeline on BuildKite had been disabled for months
and doesn't exist anymore, so this script is effectively dead code. When
we set up a cron-activated build again, we should do it using Github
actions (which could trigger a BK pipeline if needed).

Keeping this script around just creates additional confusion about
what's used and what's not used for doing CI.


  Commit: 56602a48c735a1c906a9ec4e03a64fd9c937def3
      https://github.com/llvm/llvm-project/commit/56602a48c735a1c906a9ec4e03a64fd9c937def3
  Author: ostannard <oliver.stannard at arm.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/docs/TableGen/BackEnds.rst
    M llvm/lib/TableGen/JSONBackend.cpp
    A llvm/test/TableGen/JSON-locs.td
    M llvm/test/TableGen/JSON.td

  Log Message:
  -----------
  [TableGen] Include source location in JSON dump (#79028)

This adds a '!loc' field to each record containing the file name and
line number of the record declaration.


  Commit: b801b607e38ca9113394a918f475e5a521b7ec13
      https://github.com/llvm/llvm-project/commit/b801b607e38ca9113394a918f475e5a521b7ec13
  Author: Jan Svoboda <jan_svoboda at apple.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M clang-tools-extra/clangd/xpc/cmake/modules/CreateClangdXPCFramework.cmake

  Log Message:
  -----------
  [clangd] Make sure ninja can clean "ClangdXPC.framework" (#75669)

After building the ClangdXPC target, `ninja clean` fails with the
following error:

```
ninja: error: remove(lib/ClangdXPC.framework): Directory not empty
ninja: error: remove(<build>/lib/ClangdXPC.framework): Directory not empty
```

I did not find better way to make this work. I guess we could list all
generated files (and directories) in `OUTPUT` of the custom command, but
that seems fairly tedious/fragile.


  Commit: e9311f9c5acd3d9f282c351721bb911e5b519531
      https://github.com/llvm/llvm-project/commit/e9311f9c5acd3d9f282c351721bb911e5b519531
  Author: Philip Reames <preames at rivosinc.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

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

  Log Message:
  -----------
  [RISCV] Separate single source and dual source lowering code [nfc]

The two single source cases aren't effected by the swap or select matching
as those are dual operand specific.  Similarly, a two source shuffle can't
be a rotate.

We can extend this idea for some of the shuffle types above, but some of
them are validly either single or dual source.  We don't want to loose that
and the code complexity of versioning early and having to repeat some shuffle
kinds doesn't (currently) seem worth it.


  Commit: 1605bf58151bc357780fee5553beee2b404772a7
      https://github.com/llvm/llvm-project/commit/1605bf58151bc357780fee5553beee2b404772a7
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/lib/Transforms/Scalar/ConstraintElimination.cpp

  Log Message:
  -----------
  [ConstraintElimination] Use std::move in the constructor (NFC) (#79259)

Moving the contents of Coefficients saves 0.43% of heap allocations
during the compilation of a large preprocessed file, namely
X86ISelLowering.cpp, for the X86 target.


  Commit: 3b8539c9dc0bc38ebea903e038257ed4328f290b
      https://github.com/llvm/llvm-project/commit/3b8539c9dc0bc38ebea903e038257ed4328f290b
  Author: Alex MacLean <amaclean at nvidia.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp
    A llvm/test/CodeGen/NVPTX/global-incomplete-init.ll
    M llvm/test/CodeGen/NVPTX/globals_init.ll
    M llvm/test/CodeGen/NVPTX/i128-global.ll

  Log Message:
  -----------
  [NVPTX] use incomplete aggregate initializers (#79062)

The PTX ISA specifies that initializers may be incomplete ([5.4.4.
Initializers](https://docs.nvidia.com/cuda/parallel-thread-execution/index.html#initializers))
> As in C, array initializers may be incomplete, i.e., the number of
initializer elements may be less than the extent of the corresponding
array dimension, with remaining array locations initialized to the
default value for the specified array type.

Emitting initializers in this form is preferable because it reduces the
size of the PTX, in some cases significantly, and can improve compile
time of ptxas as a result.


  Commit: ca654acc16c43191228eadfec8f7241dca10b0c3
      https://github.com/llvm/llvm-project/commit/ca654acc16c43191228eadfec8f7241dca10b0c3
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/X86/extract-subvector-long-input.ll

  Log Message:
  -----------
  [SLP]Fix PR79321: SLPVectorizer's PHICompare doesn't provide a strict
weak ordering.

Compared NumUses to meet the reaquirements of the strict weak ordering.


  Commit: 2a77d92e2e942fb1c7e23b046581531ec464cce5
      https://github.com/llvm/llvm-project/commit/2a77d92e2e942fb1c7e23b046581531ec464cce5
  Author: Vojislav Tomasevic <vojislav.tomasevic at syrmia.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/test/CodeGen/builtins.c

  Log Message:
  -----------
  [clang] Incorrect IR involving the use of bcopy (#79298)

This patch addresses the issue regarding the call of bcopy function in a
conditional expression.
It is analogous to the already accepted patch which deals with the same
problem, just regarding the bzero function [0].

Here is the testcase which illustrates the issue:

```
void bcopy(const void *, void *, unsigned long);
void foo(void);

void test_bcopy() {
  char dst[20];
  char src[20];
  int _sz = 20, len = 20;
  return (_sz
          ? ((_sz >= len)
             ? bcopy(src, dst, len)
             : foo())
          : bcopy(src, dst, len));
}
```

When processing it with clang, following issue occurs:

Instruction does not dominate all uses!
%arraydecay2 = getelementptr inbounds [20 x i8], ptr %dst, i64 0, i64 0,
!dbg !38
%cond = phi ptr [ %arraydecay2, %cond.end ], [ %arraydecay5,
%cond.false3 ], !dbg !33
fatal error: error in backend: Broken module found, compilation aborted!

This happens because an incorrect phi node is created. It is created
because bcopy function call is lowered to the call of llvm.memmove
intrinsic and function memmove returns void *. Since llvm.memmove is
called in two places in the same return statement, clang creates a phi
node in the final basic block for the return value and that phi node is
incorrect. However, bcopy function should return void in the first
place, so this phi node is unnecessary. This is what this patch
addresses. An appropriate test is also added and no existing tests fail
when applying this patch.

Also, this crash only happens when LLVM is configured with
-DLLVM_ENABLE_ASSERTIONS=On option.

[0] https://reviews.llvm.org/D39746


  Commit: 4a9a1d83bee91418c649eccc9537dcbf6a745a65
      https://github.com/llvm/llvm-project/commit/4a9a1d83bee91418c649eccc9537dcbf6a745a65
  Author: Nico Weber <thakis at chromium.org>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/utils/gn/secondary/clang/include/clang/Basic/BUILD.gn
    M llvm/utils/gn/secondary/clang/lib/Basic/BUILD.gn
    M llvm/utils/gn/secondary/clang/utils/TableGen/BUILD.gn

  Log Message:
  -----------
  [gn build] port 4a582845597e (tablegen'd clang builtins)


  Commit: 604a6c409e8473b212952b8633d92bbdb22a45c9
      https://github.com/llvm/llvm-project/commit/604a6c409e8473b212952b8633d92bbdb22a45c9
  Author: Jeremy Morse <jeremy.morse at sony.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

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

  Log Message:
  -----------
  [BPI] Transfer value-handles when assign/move constructing BPI (#77774)

Background: BPI stores a collection of edge branch-probabilities, and
also a set of Callback value-handles for the blocks in the
edge-collection. When a block is deleted, BPI's eraseBlock method is
called to clear the edge-collection of references to that block, to
avoid dangling pointers.

However, when move-constructing or assigning a BPI object, the
edge-collection gets moved, but the value-handles are discarded. This
can lead to to stale entries in the edge-collection when blocks are
deleted without the callback -- not normally a problem, but if a new
block is allocated with the same address as an old block, spurious
branch probabilities will be recorded about it. The fix is to transfer
the handles from the source BPI object.

This was exposed by an unrelated debug-info change, it probably just
shifted around allocation orders to expose this. Detected as
nondeterminism and reduced by Zequan Wu:


https://github.com/llvm/llvm-project/commit/f1b0a544514f3d343f32a41de9d6fb0b6cbb6021#commitcomment-136737090

(No test because IMHO testing for a behaviour that varies with memory
allocators is likely futile; I can add the reproducer with a CHECK for
the relevant branch weights if it's desired though)


  Commit: ed7cee90f7849594ba9a3ebc2271cb9b5d172004
      https://github.com/llvm/llvm-project/commit/ed7cee90f7849594ba9a3ebc2271cb9b5d172004
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    A clang/test/Driver/unsupported-option-gpu.c

  Log Message:
  -----------
  [Driver] Test ignored target-specific options for AMDGPU/NVPTX (#79222)

Fix missing test coverage after #70740 #70760

When compiling for CUDA/HIP, the driver creates a cc1 job to compile for
amdgcn/nvptx triple using most options.
Certain target-specific options should be ignored, not lead to an error
(`err_drv_unsupported_opt_for_target`).


  Commit: e099e7b278c774338c7019e38fbbca9ef2c8dd74
      https://github.com/llvm/llvm-project/commit/e099e7b278c774338c7019e38fbbca9ef2c8dd74
  Author: Nikolas Klauser <nikolasklauser at berlin.de>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M clang/include/clang/Basic/Builtins.td

  Log Message:
  -----------
  [Clang] Fix the signature of __builtin___stpncpy_chk


  Commit: c1cb0b80f00888920050068a8c6b4f78ca40dd43
      https://github.com/llvm/llvm-project/commit/c1cb0b80f00888920050068a8c6b4f78ca40dd43
  Author: lntue <35648136+lntue at users.noreply.github.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M libc/cmake/modules/LLVMLibCObjectRules.cmake
    M libc/cmake/modules/LLVMLibCTestRules.cmake

  Log Message:
  -----------
  [libc][NFC] Fix `-DSHOW_INTERMEDIATE_OBJECTS=DEPS` to work properly for entry points and unit tests. (#79254)


  Commit: 32f7922646d5903f63d16c9fbfe3d508b0f8cda7
      https://github.com/llvm/llvm-project/commit/32f7922646d5903f63d16c9fbfe3d508b0f8cda7
  Author: William Moses <gh at wsmoses.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/tools/opt/CMakeLists.txt
    M llvm/tools/opt/NewPMDriver.cpp
    M llvm/tools/opt/NewPMDriver.h
    M llvm/tools/opt/opt.cpp
    A llvm/tools/opt/optdriver.cpp
    M utils/bazel/llvm-project-overlay/llvm/BUILD.bazel

  Log Message:
  -----------
  [CMake/Bazel] Support usage of opt driver as a library (#79205)

In Bazel, Clang current separates the clang executable into a
clang-driver library, and the actual clang executable. This allows
downstream users to make their own variations of clang, without having
to redo/maintain separate build pipelines.

This adds the same for opt for both CMake and Bazel.


  Commit: 7e09239e24b339f45f63a670e2e831150826bf70
      https://github.com/llvm/llvm-project/commit/7e09239e24b339f45f63a670e2e831150826bf70
  Author: Michael Maitland <michaeltmaitland at gmail.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

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

  Log Message:
  -----------
  [CodeGen][MISched] Handle empty sized resource usage. (#75951)

TargetSchedule.td explicitly allows the usage of a ProcResource for zero
cycles, in order to represent that the ProcResource must be available
but is not consumed by the instruction. On the other hand,
ResourceSegments explicitly does not allow for a zero sized interval. In
order to remedy this, this patch handles the special case of when there
is an empty interval usage of a resource by not adding an empty
interval.

We ran into this issue downstream, but it makes sense to have
this upstream since it is explicitly allowed by TargetSchedule.td.


  Commit: 048041f19719758976f454cb02b662f7d5ded1dd
      https://github.com/llvm/llvm-project/commit/048041f19719758976f454cb02b662f7d5ded1dd
  Author: Schrodinger ZHU Yifan <yifanzhu at rochester.edu>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M libc/config/linux/aarch64/entrypoints.txt
    M libc/config/linux/riscv/entrypoints.txt
    M libc/config/linux/x86_64/entrypoints.txt
    M libc/spec/linux.td
    M libc/spec/spec.td
    M libc/src/sys/mman/CMakeLists.txt
    M libc/src/sys/mman/linux/CMakeLists.txt
    A libc/src/sys/mman/linux/mincore.cpp
    A libc/src/sys/mman/mincore.h
    M libc/test/src/sys/mman/linux/CMakeLists.txt
    A libc/test/src/sys/mman/linux/mincore_test.cpp

  Log Message:
  -----------
  [libc] reland mincore (#79309)


  Commit: be08be5d5de97cd593fb99affa1fa994d104eb70
      https://github.com/llvm/llvm-project/commit/be08be5d5de97cd593fb99affa1fa994d104eb70
  Author: Nico Weber <thakis at chromium.org>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/tools/opt/CMakeLists.txt
    M llvm/tools/opt/NewPMDriver.cpp
    M llvm/tools/opt/NewPMDriver.h
    M llvm/tools/opt/opt.cpp
    R llvm/tools/opt/optdriver.cpp
    M utils/bazel/llvm-project-overlay/llvm/BUILD.bazel

  Log Message:
  -----------
  Revert "[CMake/Bazel] Support usage of opt driver as a library (#79205)"

This reverts commit 32f7922646d5903f63d16c9fbfe3d508b0f8cda7.

Doesn't build, see
https://github.com/llvm/llvm-project/pull/79205#issuecomment-1908730527


  Commit: d2d42dcfde7e9bf58e49b376ae7488ffac97f4c8
      https://github.com/llvm/llvm-project/commit/d2d42dcfde7e9bf58e49b376ae7488ffac97f4c8
  Author: Michael Maitland <michaeltmaitland at gmail.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

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

  Log Message:
  -----------
  [CodeGen][MISched] Rename instance of Cycle -> ReleaseAtCycle

b1ae461a5358932851de42b66ffde8748da51a83 renamed Cycle ->
ReleaseAtCycle.

7e09239e24b339f45f63a670e2e831150826bf70 was committed without rebasing
but used the old Cycle syntax.

This caused a build failure when
7e09239e24b339f45f63a670e2e831150826bf70 was squash-and-merged. This
patch fixes this problem.


  Commit: 31359840247b7d458ea8104373eea3f0cef95e16
      https://github.com/llvm/llvm-project/commit/31359840247b7d458ea8104373eea3f0cef95e16
  Author: Nico Weber <thakis at chromium.org>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/tools/opt/CMakeLists.txt
    M llvm/tools/opt/NewPMDriver.cpp
    M llvm/tools/opt/NewPMDriver.h
    M llvm/tools/opt/opt.cpp
    A llvm/tools/opt/optdriver.cpp
    M utils/bazel/llvm-project-overlay/llvm/BUILD.bazel

  Log Message:
  -----------
  Reland "[CMake/Bazel] Support usage of opt driver as a library (#79205)"

This reverts commit be08be5d5de97cd593fb99affa1fa994d104eb70.
The build error was due to a different change, apologies!


  Commit: 609695b23e1cba538f90969afbb1b80367f2d5da
      https://github.com/llvm/llvm-project/commit/609695b23e1cba538f90969afbb1b80367f2d5da
  Author: Nico Weber <thakis at chromium.org>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/utils/gn/secondary/llvm/tools/opt/BUILD.gn

  Log Message:
  -----------
  [gn] port 32f7922646d5 (LLVMOptDriver)


  Commit: 123c83ddc71048fb0a682218e6961d71ec08c2ea
      https://github.com/llvm/llvm-project/commit/123c83ddc71048fb0a682218e6961d71ec08c2ea
  Author: Mircea Trofin <mtrofin at google.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

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

  Log Message:
  -----------
  [mlgo] bazel rules for mlgo-utils (#79217)

Akin the `py_binary` rules for `lit`, these are scoped to binaries,
rather than exposing the library - binary split. The latter is available
to the package (pip package) users.

Tested:

```
cd utils/bazel
bazel build @llvm-project//llvm:extract_ir
bazel-bin/external/llvm-project/llvm/extract_ir --help
```
...and observed expected output (rather than import not found errors)

(Same for the other 2 targets).


  Commit: 2e52e13c1e7e9a41d47b808fc5d668b7b738b94c
      https://github.com/llvm/llvm-project/commit/2e52e13c1e7e9a41d47b808fc5d668b7b738b94c
  Author: Wei Wang <apollo.mobility at gmail.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M clang/include/clang/AST/Type.h
    M clang/test/AST/ast-dump-using.cpp

  Log Message:
  -----------
  [clang] Make sure the same UsingType is searched and inserted (#79182)

When creating a new UsingType, the underlying type may change if it is a
declaration. This creates an inconsistency between the type searched and
type created. Update member and non-member Profile functions so that
they return the same ID.


  Commit: d8a34c25bcfe67243b4347e169a2a57a6da95321
      https://github.com/llvm/llvm-project/commit/d8a34c25bcfe67243b4347e169a2a57a6da95321
  Author: Nico Weber <thakis at chromium.org>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/tools/opt/CMakeLists.txt

  Log Message:
  -----------
  [opt] Remove trailing space that accidentally got added


  Commit: 4b4763ffebaed9f1fee94b8ad5a1a450a9726683
      https://github.com/llvm/llvm-project/commit/4b4763ffebaed9f1fee94b8ad5a1a450a9726683
  Author: Reid Kleckner <rnk at google.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M lld/test/wasm/signature-mismatch.s

  Log Message:
  -----------
  [lld][WebAssembly] Fix test on Windows, use llvm-ar instead of ar


  Commit: 7b11c08c664863fbcd7a3058179b0af3de5d28e4
      https://github.com/llvm/llvm-project/commit/7b11c08c664863fbcd7a3058179b0af3de5d28e4
  Author: Schrodinger ZHU Yifan <yifanzhu at rochester.edu>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M libc/test/src/sys/mman/linux/mincore_test.cpp

  Log Message:
  -----------
  [libc] remove unstable mincore test for invalid vec (#79348)

The faults on invalid vec range in mincore seems to be handled
differently by the OS (it is an erroneous edge case after all). Remove
the tests for now.


  Commit: 84dcf3d35b6ea8d8b6c34bc9cf21135863c47b8c
      https://github.com/llvm/llvm-project/commit/84dcf3d35b6ea8d8b6c34bc9cf21135863c47b8c
  Author: Jonas Paulsson <paulson1 at linux.ibm.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/lib/Target/SystemZ/SystemZISelLowering.cpp
    M llvm/test/CodeGen/SystemZ/loop-01.ll

  Log Message:
  -----------
  [SystemZ] Require D12 for i128 accesses in isLegalAddressingMode() (#79221)

Machines with vector support handle i128 in vector registers and
therefore only have the small displacement available for memory
accesses. Update isLegalAddressingMode() to reflect this.


  Commit: bb65f5a5d95736cf08b282c1ded7f5cceed5fd7e
      https://github.com/llvm/llvm-project/commit/bb65f5a5d95736cf08b282c1ded7f5cceed5fd7e
  Author: Andy Kaylor <andrew.kaylor at intel.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/lib/Support/raw_ostream.cpp
    M llvm/lib/Support/raw_socket_stream.cpp

  Log Message:
  -----------
  Move raw_string_ostream back to raw_ostream.cpp (#79224)

The implementation of raw_string_ostream::write_impl() was moved to
raw_socket_stream.cpp when the raw_socket_ostream support was separated.
This patch moves it back to facilitate disabling socket support in
downstream projects.


  Commit: 48bbd7658710ef1699bf2a6532ff5830230aacc5
      https://github.com/llvm/llvm-project/commit/48bbd7658710ef1699bf2a6532ff5830230aacc5
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

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

  Log Message:
  -----------
  [SLP]Fix PR79229: Check that extractelement is used only in a single node
before erasing.

Before trying to erase the extractelement instruction, not enough to
check for single use, need to check that it is not used in several nodes
because of the preliminary nodes reordering.


  Commit: 298412b5786cf9d65f01d90bf38402b11bf87b4f
      https://github.com/llvm/llvm-project/commit/298412b5786cf9d65f01d90bf38402b11bf87b4f
  Author: Peiming Liu <36770114+PeimingLiu at users.noreply.github.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorRewriting.cpp
    M mlir/lib/Dialect/SparseTensor/Transforms/Sparsification.cpp
    M mlir/lib/Dialect/SparseTensor/Transforms/Utils/LoopEmitter.cpp
    M mlir/lib/Dialect/SparseTensor/Transforms/Utils/LoopEmitter.h
    M mlir/lib/Dialect/SparseTensor/Transforms/Utils/SparseTensorLevel.cpp
    M mlir/lib/Dialect/SparseTensor/Transforms/Utils/SparseTensorLevel.h
    M mlir/test/Dialect/SparseTensor/dense.mlir
    M mlir/test/Dialect/SparseTensor/sorted_coo.mlir
    M mlir/test/Dialect/SparseTensor/sparse_2d.mlir
    M mlir/test/Dialect/SparseTensor/sparse_3d.mlir
    M mlir/test/Dialect/SparseTensor/sparse_affine.mlir
    M mlir/test/Dialect/SparseTensor/sparse_conv_2d_slice_based.mlir
    M mlir/test/Dialect/SparseTensor/sparse_foreach.mlir
    M mlir/test/Dialect/SparseTensor/sparse_index.mlir
    M mlir/test/Dialect/SparseTensor/sparse_nd.mlir
    M mlir/test/Dialect/SparseTensor/sparse_perm.mlir
    M mlir/test/Dialect/SparseTensor/sparse_perm_lower.mlir
    M mlir/test/Dialect/SparseTensor/sparse_vector_mv.mlir
    M mlir/test/Dialect/SparseTensor/spy_sddmm_bsr.mlir

  Log Message:
  -----------
  [mlir][sparse] setup `SparseIterator` to help generating code to traverse a sparse tensor level. (#78345)


  Commit: 0f8b52955c219e42e87162fd8c99c3cea6e35d21
      https://github.com/llvm/llvm-project/commit/0f8b52955c219e42e87162fd8c99c3cea6e35d21
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M clang/test/Driver/linker-wrapper.c
    M clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp
    M clang/tools/clang-linker-wrapper/LinkerWrapperOpts.td

  Log Message:
  -----------
  [LinkerWrapper] Do not link device code under a relocatable link (#79314)

Summary:
A relocatable link through `clang -r` can go through the
clang-linker-wrapper if offloading is enabled. This will have the effect
of linking the device code and creating the wrapper module. It will then
be merged into the final file. This is useful behavior on its own, but
is likely not what is expected for a `-r` job.

This patch makes the linker wrapper ignore the device code when doing a
reloctable link. This has the effect of the linker merging the
`.llvm.offloading` sections in the output object. These will then be
parsed as normal when the executable is finally created.

Even though this doesn't actually perform a reloctable link on the
device code itself, it has a similar effect of combining multiple files
into a single one.


  Commit: a551703cb5d171d24303de9d20bfdedfe46d49cf
      https://github.com/llvm/llvm-project/commit/a551703cb5d171d24303de9d20bfdedfe46d49cf
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M clang/test/Driver/linker-wrapper-image.c
    M llvm/lib/Frontend/Offloading/Utility.cpp

  Log Message:
  -----------
  [Offload] Fix the offloading wrapper when merged multiple times. (#79231)

Summary:
The offloading wrapper is a object file that contains code necessary to
register offloading entries for the given runtime. Currently, we
expected only one of these to be present when we make the final
executable. However, in the case of redistributable linking with `-r` we
can end up with multiple of these being generated before finally
creating the executable.

This patch simply changes the defintiions of these globals to be
mergable. This allows multiples of these to participate in a single link
job. For ELF, we just make the dummy variable internal and used so it
sets up the section as expected. For COFF we make the entries weak_odr
so they merge to a single symbol


  Commit: 04ce0baf015ced39e994b8839e30bd5cef6c995e
      https://github.com/llvm/llvm-project/commit/04ce0baf015ced39e994b8839e30bd5cef6c995e
  Author: Eric <eric at efcs.ca>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M libcxx/docs/ReleaseNotes/18.rst
    M libcxx/include/__config
    M libcxx/include/string
    M libcxx/test/libcxx/strings/basic.string/string.capacity/allocation_size.pass.cpp
    M libcxx/test/libcxx/strings/basic.string/string.capacity/max_size.pass.cpp
    M libcxx/test/std/strings/basic.string/string.capacity/max_size.pass.cpp

  Log Message:
  -----------
  Unconditionally lower std::string's alignment requirement from 16 to 8. (#68925)

Unconditionally change std::string's alignment to 8.

This change saves memory by providing the allocator more freedom to
allocate the most
efficient size class by dropping the alignment requirements for
std::string's
pointer from 16 to 8. This changes the output of std::string::max_size,
which makes it ABI breaking.

That said, the discussion concluded that we don't care about this ABI
break. and would like this change enabled universally.

The ABI break isn't one of layout or "class size", but rather the value
of "max_size()" changes, which in turn changes whether `std::bad_alloc`
or `std::length_error` is thrown for large allocations.

This change is the child of PR #68807, which enabled the change behind
an ABI flag.


  Commit: e6f576b0c3fdddcd5916dcce24d17e36d2dbe2e6
      https://github.com/llvm/llvm-project/commit/e6f576b0c3fdddcd5916dcce24d17e36d2dbe2e6
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M clang/docs/ShadowCallStack.rst

  Log Message:
  -----------
  [Docs] Mention RISC-V in the introductory paragraph in ShadowCallStack.rst. (#79241)

RISC-V is mentioned elsewhere in the document it seems like it should be
mentioned in the introduction.


  Commit: e3ee3762304aa81e4a240500844bfdd003401b36
      https://github.com/llvm/llvm-project/commit/e3ee3762304aa81e4a240500844bfdd003401b36
  Author: erichkeane <ekeane at nvidia.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M clang/lib/AST/TemplateBase.cpp
    M clang/test/SemaTemplate/temp_arg_nontype_cxx20.cpp

  Log Message:
  -----------
  Fix comparison of Structural Values

Fixes a regression from #78041 as reported in the review.  The original
patch failed to compare the canonical type, which this adds.  A slightly
modified test of the original report is added.


  Commit: 260e45cff0c3b2e95eea9752d64f7a3a31432c0a
      https://github.com/llvm/llvm-project/commit/260e45cff0c3b2e95eea9752d64f7a3a31432c0a
  Author: Peiming Liu <36770114+PeimingLiu at users.noreply.github.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

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

  Log Message:
  -----------
  [mlir][sparse] fix stack UAF (#79353)


  Commit: 4a9b5aa1164c1eff68c98c1513cab3ac0c52b4af
      https://github.com/llvm/llvm-project/commit/4a9b5aa1164c1eff68c98c1513cab3ac0c52b4af
  Author: Schrodinger ZHU Yifan <yifanzhu at rochester.edu>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M libc/startup/linux/do_start.cpp

  Log Message:
  -----------
  [libc][NFC] remove TODO about AppProperties (#79356)

```
AppProperties app;
```
is marked as a weak symbol in header now. One can just use `&app !=
nullptr` to check if `app` is defined. There is no need to define it for
overlay mode.


  Commit: 22c22d6182e0ee456ff1141be8e178ede6df47bb
      https://github.com/llvm/llvm-project/commit/22c22d6182e0ee456ff1141be8e178ede6df47bb
  Author: Schrodinger ZHU Yifan <yifanzhu at rochester.edu>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M libc/src/__support/HashTable/table.h

  Log Message:
  -----------
  [libc][NFC] mark hashtable as resizable (#79354)

It is not fix-sized anymore.


  Commit: 48570a6feb62c897dc4cdcd1dab3e99a0aa46d48
      https://github.com/llvm/llvm-project/commit/48570a6feb62c897dc4cdcd1dab3e99a0aa46d48
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M clang/test/Driver/unsupported-option-gpu.c

  Log Message:
  -----------
  [Driver,test] Add --target= to unsupported-option-gpu.c


  Commit: f6ca6ed528b4ab0507f5099efd8902e0c076a327
      https://github.com/llvm/llvm-project/commit/f6ca6ed528b4ab0507f5099efd8902e0c076a327
  Author: Tom Stellard <tstellar at redhat.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M compiler-rt/lib/builtins/CMakeLists.txt

  Log Message:
  -----------
  Revert "compiler-rt: Fix FLOAT16 feature detection"

This reverts commit aaa93ce7323332d8290b8f563d4d71689c1094c5.

This commit was not properly reviewed.


  Commit: 6e4930c67508a90bdfd756f6e45417b5253cd741
      https://github.com/llvm/llvm-project/commit/6e4930c67508a90bdfd756f6e45417b5253cd741
  Author: Alexander Kornienko <alexfh at google.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M clang/lib/Sema/SemaInit.cpp
    M clang/lib/Sema/SemaOverload.cpp
    M clang/test/CXX/drs/dr14xx.cpp
    M clang/test/CXX/drs/dr21xx.cpp
    M clang/test/CXX/drs/dr23xx.cpp
    M clang/www/cxx_dr_status.html
    M libcxx/test/std/utilities/utility/pairs/pairs.pair/ctor.pair_U_V_move.pass.cpp

  Log Message:
  -----------
  Revert "[SemaCXX] Implement CWG2137 (list-initialization from objects of the same type) (#77768)"

This reverts commit 924701311aa79180e86ad8ce43d253f27d25ec7d. Causes compilation
errors on valid code, see
https://github.com/llvm/llvm-project/pull/77768#issuecomment-1908062472.


  Commit: 3967510032bc50062128e9ec078d930d7d5151ce
      https://github.com/llvm/llvm-project/commit/3967510032bc50062128e9ec078d930d7d5151ce
  Author: Michael Maitland <michaeltmaitland at gmail.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/GISel/RISCVCallLowering.cpp
    M llvm/test/CodeGen/RISCV/GlobalISel/irtranslator/vec-args.ll
    M llvm/test/CodeGen/RISCV/GlobalISel/irtranslator/vec-ret.ll

  Log Message:
  -----------
  [RISCV][GISel] First mask argument placed in v0 according to RISCV Ve… (#79343)

…ctor CC.


  Commit: fe9f3903f2d61bc67bfee66b44872339c8c767bb
      https://github.com/llvm/llvm-project/commit/fe9f3903f2d61bc67bfee66b44872339c8c767bb
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

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

  Log Message:
  -----------
  [AMDGPU] Update isLegalAddressingMode for GFX12 SMEM loads (#78728)


  Commit: 72ce6294157964042b7ed5576ce2c99257eeea9d
      https://github.com/llvm/llvm-project/commit/72ce6294157964042b7ed5576ce2c99257eeea9d
  Author: lntue <35648136+lntue at users.noreply.github.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M libc/cmake/modules/LLVMLibCLibraryRules.cmake
    M libc/config/darwin/arm/headers.txt
    M libc/config/darwin/x86_64/headers.txt
    M libc/config/gpu/headers.txt
    M libc/config/linux/aarch64/headers.txt
    M libc/config/linux/riscv/headers.txt
    M libc/config/linux/x86_64/headers.txt
    M libc/include/CMakeLists.txt
    A libc/include/limits.h.def
    M libc/include/llvm-libc-macros/CMakeLists.txt
    M libc/include/llvm-libc-macros/float-macros.h
    A libc/include/llvm-libc-macros/limits-macros.h
    M libc/spec/stdc.td
    M libc/src/__support/CMakeLists.txt
    M libc/src/__support/CPP/CMakeLists.txt
    M libc/src/__support/CPP/limits.h
    M libc/src/__support/FPUtil/CMakeLists.txt
    M libc/src/__support/FPUtil/ManipulationFunctions.h
    M libc/src/__support/math_extras.h
    M libc/src/__support/str_to_integer.h
    M libc/src/__support/threads/linux/CMakeLists.txt
    M libc/src/__support/threads/linux/callonce.cpp
    M libc/src/time/CMakeLists.txt
    M libc/src/time/mktime.cpp
    M libc/src/time/time_utils.cpp
    M libc/test/src/math/CMakeLists.txt
    M libc/test/src/math/ILogbTest.h
    M libc/test/src/math/LdExpTest.h
    M libc/test/src/math/smoke/CMakeLists.txt
    M libc/test/src/math/smoke/ILogbTest.h
    M libc/test/src/math/smoke/LdExpTest.h
    M libc/test/src/stdlib/AtoiTest.h
    M libc/test/src/stdlib/CMakeLists.txt
    M libc/test/src/stdlib/StrtolTest.h
    M libc/test/src/stdlib/atof_test.cpp
    M libc/test/src/stdlib/strtod_test.cpp
    M libc/test/src/stdlib/strtof_test.cpp
    M libc/test/src/stdlib/strtold_test.cpp
    M libc/test/src/time/CMakeLists.txt
    M libc/test/src/time/clock_test.cpp
    M libc/test/src/time/gmtime_test.cpp
    M libc/test/src/time/mktime_test.cpp
    M libc/test/src/time/time_test.cpp

  Log Message:
  -----------
  [libc] Add C23 limits.h header. (#78887)


  Commit: 62a384ca66993b449c5accedbebf7af191fbe52c
      https://github.com/llvm/llvm-project/commit/62a384ca66993b449c5accedbebf7af191fbe52c
  Author: erichkeane <ekeane at nvidia.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M clang/include/clang/Basic/OpenACCKinds.h
    M clang/include/clang/Parse/Parser.h
    M clang/lib/Parse/ParseOpenACC.cpp
    M clang/test/ParserOpenACC/parse-clauses.c
    M clang/test/ParserOpenACC/parse-clauses.cpp

  Log Message:
  -----------
  [OpenACC} Implement 'async' parsing.

async just takes an integral value, but it has a little bit of special
rules in sema, so it is implemented slightly differently than int-expr.

This patch implements async parsing.


  Commit: 36e4a7ecca8a79fe8960a1e2afa78fbbd643dc7f
      https://github.com/llvm/llvm-project/commit/36e4a7ecca8a79fe8960a1e2afa78fbbd643dc7f
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

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

  Log Message:
  -----------
  [SLP]Fix PR79321: SLPVectorizer's PHICompare doesn't provide a strict
weak ordering.
Try to make PHICompare to meat strict weak ordering criteria.


  Commit: ce21721d1dd0f11c3ff38d16050e65861908a395
      https://github.com/llvm/llvm-project/commit/ce21721d1dd0f11c3ff38d16050e65861908a395
  Author: arthurqiu <qiurenjie at msn.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M mlir/test/IR/properties.mlir
    M mlir/tools/mlir-tblgen/OpFormatGen.cpp

  Log Message:
  -----------
  [MLIR] Fix tblgen properties printing to filter them out of discardable attrs dict (#79243)

This is to fix the bug reported in
https://discourse.llvm.org/t/whats-the-recommended-way-to-use-prop-dict/75921

When `prop-dict` is used in the assembly format, `attr-dict` should
print discardable attributes only.

Co-authored-by: Arthurq Qiu <arthurq at nvidia.com>


  Commit: 3a92b20cb0e61bec886d07c3f7280b8b2a4b8d49
      https://github.com/llvm/llvm-project/commit/3a92b20cb0e61bec886d07c3f7280b8b2a4b8d49
  Author: lntue <35648136+lntue at users.noreply.github.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M libc/include/llvm-libc-macros/limits-macros.h

  Log Message:
  -----------
  [libc] Add backup definition for LONG_WIDTH in limits-macros.h. (#79375)


  Commit: 23faa81d3f0b701aec3731a7fce4d65c57a752b9
      https://github.com/llvm/llvm-project/commit/23faa81d3f0b701aec3731a7fce4d65c57a752b9
  Author: Micah Weston <micahsweston at gmail.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/lib/ObjectYAML/ELFEmitter.cpp
    M llvm/test/tools/llvm-objdump/X86/elf-bbaddrmap-disassemble-symbolize-operands.yaml
    M llvm/test/tools/llvm-objdump/X86/elf-bbaddrmap-symbolize-relocatable.yaml
    M llvm/test/tools/llvm-objdump/X86/elf-pgoanalysismap.yaml
    M llvm/test/tools/llvm-readobj/ELF/bb-addr-map-relocatable.test
    M llvm/test/tools/llvm-readobj/ELF/bb-addr-map.test
    M llvm/test/tools/obj2yaml/ELF/bb-addr-map.yaml
    M llvm/test/tools/yaml2obj/ELF/bb-addr-map.yaml
    M llvm/unittests/Object/ELFObjectFileTest.cpp

  Log Message:
  -----------
  [SHT_LLVM_BB_ADDR_MAP] Avoids side-effects in addition since order is unspecified. (#79168)

Turns out the problem with
https://github.com/llvm/llvm-project/issues/60013 is due to the fact
that order of operation is unspecified in C++:
https://en.cppreference.com/w/cpp/language/eval_order. A small example
of where this manifests with MSVC can be seen here
https://ooo.godbolt.org/z/bxqKeqzqn.

This patch does the following:
* Removes the addition operations where we sequence more than one
side-effect based expression.
* Removes test guards to now run on Windows


  Commit: 6384b6239b45f67aa6591d911376cc224b256c8d
      https://github.com/llvm/llvm-project/commit/6384b6239b45f67aa6591d911376cc224b256c8d
  Author: Stanislav Mekhanoshin <rampitec at users.noreply.github.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

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

  Log Message:
  -----------
  [AMDGPU] Simplify VOP3PWMMA_Profile. NFC. (#79377)


  Commit: a0c1b5bdda91920a66f58b0a891c551acff2d2a1
      https://github.com/llvm/llvm-project/commit/a0c1b5bdda91920a66f58b0a891c551acff2d2a1
  Author: DianQK <dianqk at dianqk.net>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
    A llvm/test/Transforms/SimplifyCFG/unreachable-eliminate-on-ret.ll

  Log Message:
  -----------
  Reland "[SimplifyCFG] Check if the return instruction causes undefined behavior"

This relands commit b6a0be8ce3114d0c57e7a7d6c3c222986ca506ad.

Return undefined to a noundef return value is undefined.

Example:

```
define noundef i32 @test_ret_noundef(i1 %cond) {
entry:
  br i1 %cond, label %bb1, label %bb2
bb1:
  br label %bb2
bb2:
  %r = phi i32 [ undef, %entry ], [ 1, %bb1 ]
  ret i32 %r
}
```


  Commit: a58dcc5e08665f2d58a28c9d4510cf94de6ed3bf
      https://github.com/llvm/llvm-project/commit/a58dcc5e08665f2d58a28c9d4510cf94de6ed3bf
  Author: DianQK <dianqk at dianqk.net>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
    M llvm/test/Transforms/SimplifyCFG/UnreachableEliminate.ll
    M llvm/test/Transforms/SimplifyCFG/unreachable-eliminate-on-ret.ll

  Log Message:
  -----------
  Reland "[SimplifyCFG] Improve the precision of `PtrValueMayBeModified`"

This relands commit f890f010f6a70addbd885acd0c8d1b9578b6246f.

The result value of `getelementptr inbounds (TY, null, not zero)` is a poison value.
We can think of it as undefined behavior.


  Commit: 16a1ef86cbc5e6c829919ec6c73325413b0cd21b
      https://github.com/llvm/llvm-project/commit/16a1ef86cbc5e6c829919ec6c73325413b0cd21b
  Author: David CARLIER <devnexen at gmail.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc
    M compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h
    R compiler-rt/test/sanitizer_common/TestCases/FreeBSD/hexdump.cc

  Log Message:
  -----------
  [compiler-rt] remove hexdump interception. (#79378)

a freebsd dev member reported a symbol conflict and intercepting this
had little value anyway.


  Commit: bddeef54cb66609ad0a32d840051713cd8487adb
      https://github.com/llvm/llvm-project/commit/bddeef54cb66609ad0a32d840051713cd8487adb
  Author: Jason Molenda <jmolenda at apple.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    R lldb/include/lldb/Breakpoint/WatchpointResourceList.h
    M lldb/source/Breakpoint/CMakeLists.txt
    R lldb/source/Breakpoint/WatchpointResourceList.cpp

  Log Message:
  -----------
  [lldb] [NFC] Remove unused WatchpointResourceList class (#79385)

In `[lldb] [mostly NFC] Large WP foundation: WatchpointResources
(#68845)` I added a new template StopPointSiteList to combine
WatchpointResourceList and BreakpointSiteList. But I didn't remove the
now-unused WatchpointResourceList class. This patch fixes that.


  Commit: 56da7991ead442b7c0ef9ec47d625253ed6b926e
      https://github.com/llvm/llvm-project/commit/56da7991ead442b7c0ef9ec47d625253ed6b926e
  Author: Jason Molenda <jmolenda at apple.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M lldb/include/lldb/Breakpoint/WatchpointResource.h
    M lldb/source/Breakpoint/WatchpointResource.cpp

  Log Message:
  -----------
  [lldb] [NFC] Remove unused WatchpointResource::SetID method (#79389)

I originally thought to try to guesstimate the hardware watchpoint index
number that a Resource was associated with, but gdb remote serial
protocol doesn't give us the hardware register index used so it was only
a guess. I changed my mind and simply use ever-incrementing ID numbers
for the WatchpointResources, but forgot to remove the SetID method.


  Commit: 45950f6e27efaba0aa5ab67d5ea7d6df5e8edc5f
      https://github.com/llvm/llvm-project/commit/45950f6e27efaba0aa5ab67d5ea7d6df5e8edc5f
  Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/utils/gn/secondary/lldb/source/Breakpoint/BUILD.gn

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


  Commit: 1ae0448ed37654529b7172aa643ce7ba5735fb3a
      https://github.com/llvm/llvm-project/commit/1ae0448ed37654529b7172aa643ce7ba5735fb3a
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
    M llvm/test/Instrumentation/MemorySanitizer/msan_asm_conservative.ll

  Log Message:
  -----------
  [msan] Enable msan-handle-asm-conservative for userspace by default (#79251)

msan-handle-asm-conservative is enabled by KMSAN by default.
Enable the userspace by default as well after #77393.


  Commit: bb6a4850553dd4140a5bd63187ec1b14d0b731f9
      https://github.com/llvm/llvm-project/commit/bb6a4850553dd4140a5bd63187ec1b14d0b731f9
  Author: Alexander Yermolovich <43973793+ayermolo at users.noreply.github.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M bolt/include/bolt/Rewrite/DWARFRewriter.h
    M bolt/lib/Rewrite/DWARFRewriter.cpp
    A bolt/test/X86/Inputs/dwarf4-debug-line-offset-change-after-bolt-helper.s
    A bolt/test/X86/Inputs/dwarf4-debug-line-offset-change-after-bolt-main.s
    A bolt/test/X86/Inputs/dwarf5-debug-line-offset-change-after-bolt-main.s
    A bolt/test/X86/dwarf-debug-line-stmt-list-offset-change.test

  Log Message:
  -----------
  [BOLT] Fix updating DW_AT_stmt_list for DWARF5 TUs (#79374)

Changed so that we also update DW_AT_stmt_list for DWARF5 TUs. BOLT was
doing it for DWARF4, but it wasn't doing it for DWARF5.


  Commit: e9355b1b3e36616bb86575270ff3a4664d2cf4f7
      https://github.com/llvm/llvm-project/commit/e9355b1b3e36616bb86575270ff3a4664d2cf4f7
  Author: lntue <35648136+lntue at users.noreply.github.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M libc/include/llvm-libc-macros/limits-macros.h

  Log Message:
  -----------
  [libc] Use __SIZEOF_LONG__ to define LONG_WIDTH instead of sizeof(long). (#79391)

The standard requires `limits.h` constants to be used in preprocessors.
So we use `__SIZEOF_LONG__` instead of `sizeof(long)` to define
`LONG_WIDTH`. The macro `__SIZEOF_LONG__` seems to be available on both
clang and gcc since at least version 9.


  Commit: 7386aa02efafc260ad8b2d0c9ca19d39e16cfd07
      https://github.com/llvm/llvm-project/commit/7386aa02efafc260ad8b2d0c9ca19d39e16cfd07
  Author: Philip Reames <preames at rivosinc.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    A llvm/test/CodeGen/RISCV/rvv/fixed-vector-i8-index-cornercase.ll

  Log Message:
  -----------
  [RISCV] Add test coverage for shuffle index > i8 cornercase

Triggered by discussion on https://github.com/llvm/llvm-project/pull/79330.  In the process of writing this, realized one of my recent refactorings appears to have broken the legalization for the single source case here.  Fix to follow in separate patch.


  Commit: 795090739cf3b295be750dfba0af2ba993e60cdd
      https://github.com/llvm/llvm-project/commit/795090739cf3b295be750dfba0af2ba993e60cdd
  Author: Philip Reames <preames at rivosinc.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/test/CodeGen/RISCV/rvv/fixed-vector-i8-index-cornercase.ll

  Log Message:
  -----------
  [RISCV] Fix a bug accidentally introduced in e9311f9

If we're lowering an e8 m8 shuffle and we have an index value greater than
255, we have no available space to generate an e16 index vector.  The
code had originally handled this correctly, but in a recent refactoring
I had moved the single source code above the check, and thus broke the
single source by accident.

I have a change on review to rework this (https://github.com/llvm/llvm-project/pull/79330), but for now, go with the most obvious fix.


  Commit: b7f986d987edd50f8b16ae90d38358b01f0272ac
      https://github.com/llvm/llvm-project/commit/b7f986d987edd50f8b16ae90d38358b01f0272ac
  Author: Ben Shi <2283975856 at qq.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp
    M clang/test/Analysis/errno-stdlibraryfunctions.c

  Log Message:
  -----------
  [clang][analyzer] Improve modeling of 'execv' and 'execvp' in StdLibraryFunctionsChecker (#78930)

These functions always return -1 and set 'errno'.


  Commit: 549bee8a55b0abb1232411d1c23d595f605ae1ee
      https://github.com/llvm/llvm-project/commit/549bee8a55b0abb1232411d1c23d595f605ae1ee
  Author: gulfemsavrun <gulfem at google.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M clang/lib/Lex/HeaderSearch.cpp
    R clang/test/Modules/pr73023.cpp

  Log Message:
  -----------
  Revert "[Modules] [HeaderSearch] Don't reenter headers if it is pragm… (#79396)

…a once  (#76119)"

This reverts commit f0c387038854d61a632520a4073d1b6ebf4997ed because it
causes an lldb test to fail on a missing import on Mac.

https://logs.chromium.org/logs/fuchsia/buildbucket/cr-buildbucket/8758053465398947297/+/u/lldb/test/stdout


  Commit: 28db4017b0b12eb9cf9bbe85afe46a9cf783d2c2
      https://github.com/llvm/llvm-project/commit/28db4017b0b12eb9cf9bbe85afe46a9cf783d2c2
  Author: Philip Reames <preames at rivosinc.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-shuffle-rotate.ll

  Log Message:
  -----------
  [RISCV] Add test coverage for bad interaction of exact vlen and rotate shuffles


  Commit: a7395891a797b3cf61a136aea9a82c4c2325b2b3
      https://github.com/llvm/llvm-project/commit/a7395891a797b3cf61a136aea9a82c4c2325b2b3
  Author: Enna1 <xumingjie.enna1 at bytedance.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M llvm/lib/Transforms/Instrumentation/MemProfiler.cpp

  Log Message:
  -----------
  [MemProf][NFC] remove unneeded TypeSize in InterestingMemoryAccess (#79244)

Unlike ASan, MemProf uses the same memory access callback(inline
sequence) for different size memory access, remove unneeded TypeSize
stored in InterestingMemoryAccess.


  Commit: f8262cae69a616b98774d4c669e11246fe3a9a05
      https://github.com/llvm/llvm-project/commit/f8262cae69a616b98774d4c669e11246fe3a9a05
  Author: Enna1 <xumingjie.enna1 at bytedance.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M llvm/lib/Transforms/Instrumentation/MemProfiler.cpp

  Log Message:
  -----------
  [MemProf][NFC] remove unneeded sized memory access callback (#79260)

As discussed in https://github.com/llvm/llvm-project/pull/79244, the
sized memory access callback is leftover stuff carried over from Asan,
can removed from the instrumentation.


  Commit: a6161a2524c5146a982abc4d580a61f95344edbf
      https://github.com/llvm/llvm-project/commit/a6161a2524c5146a982abc4d580a61f95344edbf
  Author: Jie Fu <jiefu at tencent.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M llvm/lib/Transforms/Instrumentation/MemProfiler.cpp

  Log Message:
  -----------
  [Instrumentation] Remove unused variable 'DL' in MemProfiler.cpp (NFC)

llvm-project/llvm/lib/Transforms/Instrumentation/MemProfiler.cpp:375:21:
 error: unused variable 'DL' [-Werror,-Wunused-variable]
  const DataLayout &DL = I->getModule()->getDataLayout();
                    ^
1 error generated.


  Commit: 816cc9d24b8716367e85d582c7afdfb1cdfcdbf3
      https://github.com/llvm/llvm-project/commit/816cc9d24b8716367e85d582c7afdfb1cdfcdbf3
  Author: XinWang10 <108658776+XinWang10 at users.noreply.github.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp
    M llvm/lib/Target/X86/X86InstrArithmetic.td
    M llvm/lib/Target/X86/X86InstrMisc.td
    M llvm/test/MC/Disassembler/X86/apx/andn.txt
    M llvm/test/MC/Disassembler/X86/apx/bextr.txt
    M llvm/test/MC/Disassembler/X86/apx/blsi.txt
    M llvm/test/MC/Disassembler/X86/apx/blsmsk.txt
    M llvm/test/MC/Disassembler/X86/apx/blsr.txt
    M llvm/test/MC/Disassembler/X86/apx/bzhi.txt
    M llvm/test/MC/X86/apx/andn-att.s
    M llvm/test/MC/X86/apx/andn-intel.s
    M llvm/test/MC/X86/apx/bextr-att.s
    M llvm/test/MC/X86/apx/bextr-intel.s
    M llvm/test/MC/X86/apx/blsi-att.s
    M llvm/test/MC/X86/apx/blsi-intel.s
    M llvm/test/MC/X86/apx/blsmsk-att.s
    M llvm/test/MC/X86/apx/blsmsk-intel.s
    M llvm/test/MC/X86/apx/blsr-att.s
    M llvm/test/MC/X86/apx/blsr-intel.s
    M llvm/test/MC/X86/apx/bzhi-att.s
    M llvm/test/MC/X86/apx/bzhi-intel.s
    M llvm/test/TableGen/x86-fold-tables.inc

  Log Message:
  -----------
  [X86][MC] Support Enc/Dec for NF BMI instructions (#76709)

Promoted BMI instructions were supported in #73899


  Commit: f59eef6515433577d757cf64d2d2f402d95a689e
      https://github.com/llvm/llvm-project/commit/f59eef6515433577d757cf64d2d2f402d95a689e
  Author: Han-Chung Wang <hanhan0912 at gmail.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M mlir/lib/Dialect/Tensor/Transforms/PackAndUnpackPatterns.cpp
    M mlir/test/Dialect/Tensor/simplify-pack-unpack.mlir

  Log Message:
  -----------
  [mlir][tensor] Enhance SimplifyPackToExpandShape for unit dim cases. (#79247)

Progress on https://github.com/openxla/iree/issues/16181


  Commit: 84be954cb26ebde58d4ddd2255dfd99904d9ae1b
      https://github.com/llvm/llvm-project/commit/84be954cb26ebde58d4ddd2255dfd99904d9ae1b
  Author: Shih-Po Hung <shihpo.hung at sifive.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
    M llvm/test/Analysis/CostModel/RISCV/reduce-add.ll
    M llvm/test/Analysis/CostModel/RISCV/reduce-and.ll
    M llvm/test/Analysis/CostModel/RISCV/reduce-fadd.ll
    M llvm/test/Analysis/CostModel/RISCV/reduce-or.ll
    M llvm/test/Analysis/CostModel/RISCV/reduce-scalable-fp.ll
    M llvm/test/Analysis/CostModel/RISCV/reduce-scalable-int.ll
    M llvm/test/Analysis/CostModel/RISCV/reduce-xor.ll
    M llvm/test/Analysis/CostModel/RISCV/rvv-intrinsics.ll

  Log Message:
  -----------
  [RISCV][CostModel] Refine Arithmetic reduction costs (#79103)

This patch is split off from #77342

- Correct for CodeSize cost that 1 instruction is not included. 3 is
from {VMV.S, ReductionOp, VMV.X}
- Add SplitCost
Unordered reduction chain a series of VADD/VFADD/... which scales with
LMUL.
 Ordered reductions chain a series of VFREDOSUMs.
- Use MVT to estimate VL.


  Commit: 65e0dc68f5add3579b4a582ca03755cd28d38d09
      https://github.com/llvm/llvm-project/commit/65e0dc68f5add3579b4a582ca03755cd28d38d09
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/test/CodeGen/RISCV/atomic-signext.ll

  Log Message:
  -----------
  [RISCV] Add test cases showing missed opportunity to remove sext.w after amocas.w. NFC


  Commit: 5446902cf2cda4fb17078d04207d2544518a49be
      https://github.com/llvm/llvm-project/commit/5446902cf2cda4fb17078d04207d2544518a49be
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVInstrInfoZa.td
    M llvm/test/CodeGen/RISCV/atomic-signext.ll

  Log Message:
  -----------
  [RISCV] Add IsSignExtendingOpW to amocas.w. (#79351)


  Commit: aa64a8277366973705b748e532bfae694b4262aa
      https://github.com/llvm/llvm-project/commit/aa64a8277366973705b748e532bfae694b4262aa
  Author: Changpeng Fang <changpeng.fang at amd.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

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

  Log Message:
  -----------
  [AMDGPU] Rename AMDGPULoadTr intrinsic class. NFC. (#79394)

This class is not specific to "Tr"(Transpose). It is
just for a normal load.


  Commit: 96ec447a6ae39edff92674e9849de2bf21bfd430
      https://github.com/llvm/llvm-project/commit/96ec447a6ae39edff92674e9849de2bf21bfd430
  Author: Jordan Rupprecht <rupprecht at google.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M clang-tools-extra/test/clang-tidy/checkers/abseil/Inputs/absl/external-file.h
    M clang-tools-extra/test/clang-tidy/checkers/abseil/faster-strsplit-delimiter.cpp
    M clang-tools-extra/test/clang-tidy/checkers/modernize/concat-nested-namespaces.cpp
    M clang/lib/StaticAnalyzer/Checkers/DebugContainerModeling.cpp
    M clang/lib/StaticAnalyzer/Checkers/DebugIteratorModeling.cpp
    M clang/lib/StaticAnalyzer/Checkers/InvalidatedIteratorChecker.cpp
    M clang/lib/StaticAnalyzer/Checkers/IteratorRangeChecker.cpp
    M clang/test/CXX/drs/dr23xx.cpp
    M clang/test/CXX/over/over.match/over.match.funcs/over.match.oper/p3-2a.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_hash.h
    M llvm/lib/ExecutionEngine/IntelJITEvents/IntelJITEventsWrapper.h

  Log Message:
  -----------
  [NFC] Fix various unintentional `//namespace` formatting


  Commit: 29c9009d23de1a2a395995d559c08c102fa46f48
      https://github.com/llvm/llvm-project/commit/29c9009d23de1a2a395995d559c08c102fa46f48
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M llvm/docs/RISCVUsage.rst

  Log Message:
  -----------
  [Docs] Capitalize the first letter of Zi* extensions in RISCVUsage.rst. NFC


  Commit: c52a8dcdc88eaf066ca269fc851da1558467f24c
      https://github.com/llvm/llvm-project/commit/c52a8dcdc88eaf066ca269fc851da1558467f24c
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

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

  Log Message:
  -----------
  [Analysis] Use llvm::pred_size (NFC)


  Commit: 196a71ec4bc9176ae9ac2d0475a074336e1b736b
      https://github.com/llvm/llvm-project/commit/196a71ec4bc9176ae9ac2d0475a074336e1b736b
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M clang/lib/Sema/SemaDeclAttr.cpp

  Log Message:
  -----------
  [Sema] Use StringRef::consume_front (NFC)


  Commit: 5b2772e1fad3fc8b44400b91de4d5bd0724bba75
      https://github.com/llvm/llvm-project/commit/5b2772e1fad3fc8b44400b91de4d5bd0724bba75
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M clang-tools-extra/clangd/CompileCommands.cpp
    M clang-tools-extra/clangd/Diagnostics.cpp
    M clang-tools-extra/clangd/ExpectedTypes.cpp
    M clang-tools-extra/clangd/FS.cpp
    M clang-tools-extra/clangd/XRefs.cpp
    M clang-tools-extra/clangd/index/BackgroundIndexStorage.cpp

  Log Message:
  -----------
  [clangd] Use SmallString::operator std::string (NFC)


  Commit: a13b7df7f2d19f0798dbb6c1c7aeac8c84002338
      https://github.com/llvm/llvm-project/commit/a13b7df7f2d19f0798dbb6c1c7aeac8c84002338
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

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

  Log Message:
  -----------
  [CodeGen] Use llvm::successors (NFC)


  Commit: df08350dcfc515c5a7c08e1e08047467263cb701
      https://github.com/llvm/llvm-project/commit/df08350dcfc515c5a7c08e1e08047467263cb701
  Author: Yeting Kuo <46629943+yetingk at users.noreply.github.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVInsertReadWriteCSR.cpp
    A llvm/test/CodeGen/RISCV/rvv/frm-insert.ll

  Log Message:
  -----------
  [RISCV] Implement foward inserting save/restore FRM instructions. (#77744)

Previously, RISCVInsertReadWriteCSR inserted an FRM swap for any value
other than 7 and restored the original value right after the vector
instruction. This is inefficient if multiple vector instructions use the
same rounding mode if the next vector instruction uses a different
explicit rounding mode.

This patch implements a local optimization to solve the above problem.
We assume the starting rounding mode of the basic block is "dynamic."
When iterating through a basic block and encountering an instruction
whose rounding mode is not the same as the current rounding mode, we
change the current rounding mode and save the current rounding mode if
needed. And we may need to restore FRM when encountering function call,
inline asm and some uses of FRM.

The advanced version of this is to perform cross basic block analysis
for the starting rounding mode of each basic block.


  Commit: 90c326b198080c5c208f62f6755d54d7b69b291d
      https://github.com/llvm/llvm-project/commit/90c326b198080c5c208f62f6755d54d7b69b291d
  Author: Mikael Holmen <mikael.holmen at ericsson.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

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

  Log Message:
  -----------
  [AArch64] Fix gcc warning about mix of enumeral and non-enumeral types [NFC]

Change the return type of
 findScratchNonCalleeSaveRegister
to Register instead of unsigned.

Every place the function is called we already put the returned value in a
Register variable or compare it with another Register.

This fixes some gcc warnings:
 ../lib/Target/AArch64/AArch64FrameLowering.cpp:744: warning: enumeral and non-enumeral type in conditional expression [-Wextra]
   743 |     Register TargetReg = RealignmentPadding
       |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   744 |                              ? findScratchNonCalleeSaveRegister(&MBB)
       |                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   745 |                              : AArch64::SP;
       |
 ../lib/Target/AArch64/AArch64FrameLowering.cpp:803: warning: enumeral and non-enumeral type in conditional expression [-Wextra]
   802 |     Register ScratchReg = RealignmentPadding
       |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   803 |                               ? findScratchNonCalleeSaveRegister(&MBB)
       |                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   804 |                               : AArch64::SP;
       |


  Commit: 664a0faac464708fc061d12e5cd492fcbfea979a
      https://github.com/llvm/llvm-project/commit/664a0faac464708fc061d12e5cd492fcbfea979a
  Author: Wang Pengcheng <wangpengcheng.pp at bytedance.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M llvm/include/llvm/Target/TargetInstrPredicate.td
    M llvm/utils/TableGen/PredicateExpander.cpp
    M llvm/utils/TableGen/PredicateExpander.h

  Log Message:
  -----------
  [TableGen] Add predicates for immediates comparison (#76004)

These predicates can be used to represent `<`, `<=`, `>`, `>=`.

And a predicate for `in range` is added.


  Commit: 7cedbfc31c332fa022bf2e1b0d72e5a9b6669ad3
      https://github.com/llvm/llvm-project/commit/7cedbfc31c332fa022bf2e1b0d72e5a9b6669ad3
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

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

  Log Message:
  -----------
  [RISCV] Reformat riscv-target-features.c. NFC (#79409)

Indent line continuations by 2 spaces.
Drop -x c


  Commit: f7a615a7d5a3a01d7d0ca46f8481248ef587cfe2
      https://github.com/llvm/llvm-project/commit/f7a615a7d5a3a01d7d0ca46f8481248ef587cfe2
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M llvm/test/Transforms/Attributor/nofpclass-implied-by-fcmp.ll

  Log Message:
  -----------
  ValueTracking: Use correct compare type in test


  Commit: 122ed552fc5d5807f2a96b8456b42f5114cd1a79
      https://github.com/llvm/llvm-project/commit/122ed552fc5d5807f2a96b8456b42f5114cd1a79
  Author: paperchalice <liujunchang97 at outlook.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M llvm/include/llvm/CodeGen/MachinePassManager.h
    M llvm/include/llvm/Passes/CodeGenPassBuilder.h
    M llvm/lib/Passes/CodeGenPassBuilder.cpp
    M llvm/unittests/MIR/PassBuilderCallbacksTest.cpp

  Log Message:
  -----------
  [CodeGen] Remove MachinePassKey (#79406)

We now use PassT::name to distinguish Passes.


  Commit: 45d2d7757feb386186f69af6ef57bde7b5adc2db
      https://github.com/llvm/llvm-project/commit/45d2d7757feb386186f69af6ef57bde7b5adc2db
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M llvm/include/llvm/IR/IntrinsicsAMDGPU.td
    M llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
    M llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.h
    M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
    M llvm/lib/Target/AMDGPU/SIISelLowering.h
    A llvm/test/CodeGen/AMDGPU/llvm.amdgcn.wave.id.ll

  Log Message:
  -----------
  [AMDGPU] New llvm.amdgcn.wave.id intrinsic (#79325)

This is only valid on targets with architected SGPRs.


  Commit: e390c229a438ed1eb3396df8fbeeda89c49474e6
      https://github.com/llvm/llvm-project/commit/e390c229a438ed1eb3396df8fbeeda89c49474e6
  Author: paperchalice <liujunchang97 at outlook.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M lld/test/ELF/lto/ltopasses-custom.ll
    M llvm/docs/Passes.rst
    M llvm/include/llvm/Passes/MachinePassRegistry.def
    M llvm/lib/CodeGen/CallBrPrepare.cpp
    M llvm/lib/Passes/PassRegistry.def
    M llvm/lib/Transforms/Scalar/FlattenCFGPass.cpp
    M llvm/lib/Transforms/Scalar/LowerAtomicPass.cpp
    M llvm/lib/Transforms/Utils/FlattenCFG.cpp
    M llvm/lib/Transforms/Utils/LowerInvoke.cpp
    M llvm/test/CodeGen/AArch64/callbr-prepare.ll
    M llvm/test/Feature/optnone-opt.ll
    M llvm/test/Other/new-pass-manager.ll
    M llvm/test/ThinLTO/X86/cache-config.ll
    M llvm/test/Transforms/FixIrreducible/switch.ll
    M llvm/test/Transforms/IndVarSimplify/X86/iv-widen.ll
    M llvm/test/Transforms/IndVarSimplify/backedge-on-min-max.ll
    M llvm/test/Transforms/IndVarSimplify/sharpen-range.ll
    M llvm/test/Transforms/LICM/argmemonly-call.ll
    M llvm/test/Transforms/LICM/assume.ll
    M llvm/test/Transforms/LICM/basictest.ll
    M llvm/test/Transforms/LICM/call-hoisting.ll
    M llvm/test/Transforms/LICM/crash.ll
    M llvm/test/Transforms/LICM/dbg-value-sink.ll
    M llvm/test/Transforms/LICM/debug-value.ll
    M llvm/test/Transforms/LICM/extra-copies.ll
    M llvm/test/Transforms/LICM/fence.ll
    M llvm/test/Transforms/LICM/funclet.ll
    M llvm/test/Transforms/LICM/guards.ll
    M llvm/test/Transforms/LICM/hoist-round.ll
    M llvm/test/Transforms/LICM/invariant.start.ll
    M llvm/test/Transforms/LICM/lcssa-ssa-promoter.ll
    M llvm/test/Transforms/LICM/no-preheader-test.ll
    M llvm/test/Transforms/LICM/opt-remarks-conditional-load.ll
    M llvm/test/Transforms/LICM/opt-remarks-intervening-store.ll
    M llvm/test/Transforms/LICM/opt-remarks.ll
    M llvm/test/Transforms/LICM/preheader-safe.ll
    M llvm/test/Transforms/LICM/promote-order.ll
    M llvm/test/Transforms/LICM/read-only-calls.ll
    M llvm/test/Transforms/LICM/scalar-promote-memmodel.ll
    M llvm/test/Transforms/LICM/scalar-promote-unwind.ll
    M llvm/test/Transforms/LICM/scalar-promote.ll
    M llvm/test/Transforms/LICM/speculate.ll
    M llvm/test/Transforms/LICM/store-hoisting.ll
    M llvm/test/Transforms/LICM/volatile-alias.ll
    M llvm/test/Transforms/LoopIdiom/nontemporal_store.ll
    M llvm/test/Transforms/LoopRotate/RISCV/invalid-cost.ll
    M llvm/test/Transforms/LoopRotate/basic.ll
    M llvm/test/Transforms/LoopRotate/call-prepare-for-lto.ll
    M llvm/test/Transforms/LoopRotate/noalias.ll
    M llvm/test/Transforms/LoopStrengthReduce/ivchain.ll
    M llvm/test/Transforms/LowerAtomic/atomic-load.ll
    M llvm/test/Transforms/LowerAtomic/atomic-swap.ll
    M llvm/test/Transforms/LowerAtomic/barrier.ll
    M llvm/test/Transforms/LowerInvoke/2003-12-10-Crash.ll
    M llvm/test/Transforms/LowerInvoke/lowerinvoke.ll
    M llvm/test/Transforms/LowerSwitch/2003-05-01-PHIProblem.ll
    M llvm/test/Transforms/LowerSwitch/2003-08-23-EmptySwitch.ll
    M llvm/test/Transforms/LowerSwitch/2004-03-13-SwitchIsDefaultCrash.ll
    M llvm/test/Transforms/LowerSwitch/2014-06-10-SwitchContiguousOpt.ll
    M llvm/test/Transforms/LowerSwitch/2014-06-11-SwitchDefaultUnreachableOpt.ll
    M llvm/test/Transforms/LowerSwitch/2014-06-23-PHIlowering.ll
    M llvm/test/Transforms/LowerSwitch/condition-phi-unreachable-default.ll
    M llvm/test/Transforms/LowerSwitch/delete-default-block-crash.ll
    M llvm/test/Transforms/LowerSwitch/do-not-handle-impossible-values.ll
    M llvm/test/Transforms/LowerSwitch/feature.ll
    M llvm/test/Transforms/LowerSwitch/fold-popular-case-to-unreachable-default.ll
    M llvm/test/Transforms/LowerSwitch/phi-in-dead-block.ll
    M llvm/test/Transforms/LowerSwitch/pr59316.ll
    M llvm/test/Transforms/StructurizeCFG/switch.ll
    M llvm/test/Transforms/UnifyFunctionExitNodes/unreachable-blocks-status.ll
    M llvm/test/Transforms/UnifyLoopExits/basic.ll
    M llvm/test/Transforms/UnifyLoopExits/nested.ll
    M llvm/test/Transforms/UnifyLoopExits/restore-ssa.ll
    M llvm/test/Transforms/UnifyLoopExits/switch.ll
    A llvm/test/Transforms/Util/flatten-cfg.ll
    R llvm/test/Transforms/Util/flattencfg.ll
    M llvm/test/Transforms/Util/lowerinvoke-funclet.ll
    M llvm/test/Transforms/Util/lowerswitch.ll
    M llvm/test/tools/llvm-lto2/X86/pipeline.ll

  Log Message:
  -----------
  [Pass] Add hyphen to some pass names (#74287)

Here is the list of the renamed passes:
- `callbrprepare` -> `callbr-prepare`
- `dwarfehprepare` -> `dwarf-eh-prepare`
- `flattencfg` -> `flatten-cfg`
- `loweratomic` -> `lower-atomic`
- `lowerinvoke` -> `lower-invoke`
- `lowerswitch` -> `lower-switch`
- `winehprepare` -> `win-eh-prepare`
- `targetir` -> `target-ir`
- `targetlibinfo` -> `target-lib-info`

Legacy passes are not affected.


  Commit: a46422a77668be6ce10d229480c720035056f4b3
      https://github.com/llvm/llvm-project/commit/a46422a77668be6ce10d229480c720035056f4b3
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M llvm/include/llvm/Analysis/ValueTracking.h
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/test/Transforms/Attributor/nofpclass-implied-by-fcmp.ll
    M llvm/test/Transforms/InstSimplify/assume-fcmp-constant-implies-class.ll

  Log Message:
  -----------
  Reapply "ValueTracking: Identify implied fp classes by general fcmp (#66505)"

This reverts commit 0d0c2298552222b049fa3b8db5efef4b161e51e9.

Includes a bug fix for fcmp one handling, as well as for positive constants.


  Commit: 2c49586e1b9ab917877a6af8e1669854899687d3
      https://github.com/llvm/llvm-project/commit/2c49586e1b9ab917877a6af8e1669854899687d3
  Author: David Green <david.green at arm.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M llvm/lib/Target/ARM/ARMISelLowering.cpp
    M llvm/test/CodeGen/Thumb2/mve-vcvt16.ll

  Log Message:
  -----------
  [ARM] Fix MVEFloatOps check on creating VCVTN (#79291)

In the past PerformSplittingToNarrowingStores handled both int and float
ops, but since the introduction of MVETRUNC now only operates on float
operations, creating VCVTN nodes. It should be guarded by hasMVEFloatOps
to prevent a failure to select.


  Commit: 41fe98a6e7e5cdcab4a4e9e0d09339231f480c01
      https://github.com/llvm/llvm-project/commit/41fe98a6e7e5cdcab4a4e9e0d09339231f480c01
  Author: Wang Pengcheng <wangpengcheng.pp at bytedance.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M llvm/test/TableGen/address-space-patfrags.td
    M llvm/utils/TableGen/DAGISelMatcherEmitter.cpp

  Log Message:
  -----------
  [TableGen] Use MapVector to remove non-determinism

This fixes found non-determinism when `LLVM_REVERSE_ITERATION`
option is `ON`.

Fixes #79420.

Reviewers: ilovepi, MaskRay

Reviewed By: MaskRay

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


  Commit: fa13c3eea7fbc34310f2fb602aa7f0983d5a0ea4
      https://github.com/llvm/llvm-project/commit/fa13c3eea7fbc34310f2fb602aa7f0983d5a0ea4
  Author: Guray Ozen <guray.ozen at gmail.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M mlir/lib/Conversion/NVGPUToNVVM/NVGPUToNVVM.cpp
    M mlir/test/Conversion/NVGPUToNVVM/nvgpu-to-nvvm.mlir

  Log Message:
  -----------
  [mlir][nvgpu] Fix `transposeB` in `nvgpu.warpgroup.mma` (#79271)

The #76150 fixed meaning of `transposeB` in NVVM dialect which was
initially implemented with opposite meaning.

This PR fixes the lowering of `nvgpu.warpgroup.mma` to NVVM dialect.

This will fix two integration tests:
gemm_f32_f16_f16_128x128x128.mlir
gemm_pred_f32_f16_f16_128x128x128.mlir


  Commit: d5c9d402f07e7448cd46870a59d981f582682548
      https://github.com/llvm/llvm-project/commit/d5c9d402f07e7448cd46870a59d981f582682548
  Author: Mikael Holmen <mikael.holmen at ericsson.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

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

  Log Message:
  -----------
  [AMDGPU] Fix warnings about unused variables [NFC]

Without this gcc warned like
 ../lib/Target/AMDGPU/GCNDPPCombine.cpp:371: warning: unused variable 'OpSelOpr' [-Wunused-variable]
   371 |       if (auto *OpSelOpr =
       |
 ../lib/Target/AMDGPU/GCNDPPCombine.cpp:388: warning: unused variable 'OpSelHiOpr' [-Wunused-variable]
   388 |       if (auto *OpSelHiOpr =
       |

Remove the unused variables.


  Commit: a15ebe0246c75faedfe9cb2fbc6ea7b62e265026
      https://github.com/llvm/llvm-project/commit/a15ebe0246c75faedfe9cb2fbc6ea7b62e265026
  Author: jeanPerier <jperier at nvidia.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M flang/lib/Optimizer/CodeGen/BoxedProcedure.cpp
    M flang/test/Fir/boxproc-2.fir

  Log Message:
  -----------
  [flang] fix procedure fir.box_addr identification in boxed-procedure (#79290)

The pass was mistakenly identifying a fir.box_addr on a
fir.box/fir.class of a derived type with procedure pointer components as
being a fir.box_addr on a procedure.

Simply check if the input type is a fir.box_proc or function type (if
input already rewritten) and insert convert only in this case.

This caused "invalid fir.convert" internal error.


  Commit: 1a14c446dd800b1d79fed1735c48e392d06e495d
      https://github.com/llvm/llvm-project/commit/1a14c446dd800b1d79fed1735c48e392d06e495d
  Author: Wang Pengcheng <wangpengcheng.pp at bytedance.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M clang/test/Preprocessor/riscv-target-features.c
    M llvm/docs/RISCVUsage.rst
    M llvm/lib/Support/RISCVISAInfo.cpp
    M llvm/lib/Target/RISCV/RISCVFeatures.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoA.td
    M llvm/test/CodeGen/RISCV/attributes.ll
    M llvm/test/MC/RISCV/rv32i-invalid.s
    M llvm/test/MC/RISCV/rv32zaamo-invalid.s
    M llvm/test/MC/RISCV/rv32zaamo-valid.s
    M llvm/test/MC/RISCV/rv32zalrsc-invalid.s
    M llvm/test/MC/RISCV/rv32zalrsc-valid.s
    M llvm/test/MC/RISCV/rv64zaamo-invalid.s
    M llvm/test/MC/RISCV/rv64zaamo-valid.s
    M llvm/test/MC/RISCV/rv64zalrsc-invalid.s
    M llvm/test/MC/RISCV/rv64zalrsc-valid.s
    M llvm/unittests/Support/RISCVISAInfoTest.cpp

  Log Message:
  -----------
  [RISCV][MC] Add experimental support of Zaamo and Zalrsc

`A` extension has been split into two parts: Zaamo (Atomic Memory
Operations) and Zalrsc (Load-Reserved/Store-Conditional). See also
https://github.com/riscv/riscv-zaamo-zalrsc.

This patch adds the MC support.

Reviewers: dtcxzyw, topperc, kito-cheng

Reviewed By: topperc

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


  Commit: 3fdb431b636975f2062b1931158aa4dfce6a3ff1
      https://github.com/llvm/llvm-project/commit/3fdb431b636975f2062b1931158aa4dfce6a3ff1
  Author: Wang Pengcheng <wangpengcheng.pp at bytedance.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/CMakeLists.txt
    M llvm/lib/Target/RISCV/RISCV.td
    M llvm/lib/Target/RISCV/RISCVFeatures.td
    R llvm/lib/Target/RISCV/RISCVMacroFusion.cpp
    R llvm/lib/Target/RISCV/RISCVMacroFusion.h
    A llvm/lib/Target/RISCV/RISCVMacroFusion.td
    M llvm/lib/Target/RISCV/RISCVSubtarget.cpp
    M llvm/lib/Target/RISCV/RISCVSubtarget.h
    M llvm/lib/Target/RISCV/RISCVTargetMachine.cpp

  Log Message:
  -----------
  [RISCV] Use TableGen-based macro fusion (#72224)

We convert existed macro fusions to TableGen.
    
Bacause `Fusion` depend on `Instruction` definitions which is defined
below `RISCVFeatures.td`, so we recommend user to add fusion features
when defining new processor.


  Commit: 50cc07f1bc3e4527a51b0aed6cf0479e87d61f37
      https://github.com/llvm/llvm-project/commit/50cc07f1bc3e4527a51b0aed6cf0479e87d61f37
  Author: Danial Klimkin <dklimkin at users.noreply.github.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

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

  Log Message:
  -----------
  Fix bazel build past 72ce6294157964042b7ed5576ce2c99257eeea9d (#79424)


  Commit: 12a8bc09ca4fa975d3e79a05e1fb14f03b23e3d5
      https://github.com/llvm/llvm-project/commit/12a8bc09ca4fa975d3e79a05e1fb14f03b23e3d5
  Author: paperchalice <liujunchang97 at outlook.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    A llvm/include/llvm/CodeGen/FreeMachineFunction.h
    M llvm/include/llvm/Passes/CodeGenPassBuilder.h
    M llvm/include/llvm/Passes/MachinePassRegistry.def
    M llvm/lib/CodeGen/CMakeLists.txt
    A llvm/lib/CodeGen/FreeMachineFunction.cpp
    M llvm/lib/CodeGen/MachinePassManager.cpp
    M llvm/lib/Passes/PassBuilder.cpp
    M llvm/tools/llc/NewPMDriver.cpp

  Log Message:
  -----------
  [CodeGen] Port FreeMachineFunction to new pass manager (#79421)

This pass should be the last machine function pass in pipeline, also
ignore `PI.runAfterPass(*P, MF, PassPA);` to avoid accessing a dangling
reference.


  Commit: 03cf0e9354e7e56ff794e9efb682ed2971bc91ec
      https://github.com/llvm/llvm-project/commit/03cf0e9354e7e56ff794e9efb682ed2971bc91ec
  Author: Paschalis Mpeis <paschalis.mpeis at arm.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M clang/lib/Driver/ToolChains/CommonArgs.cpp
    M clang/test/Driver/fveclib.c

  Log Message:
  -----------
  [LTO] Fix Veclib flags correctly pass to LTO flags (#78749)

Flags `-fveclib=name` were not passed to LTO flags.
This pass fixes that by converting the `-fveclib` flags to their
relevant names for opt's `-vector-lib=name` flags.

For example:
`-fveclib=SLEEF` would become `-vector-library=sleefgnuabi` and passed
through the `-plugin-opt` flag.


  Commit: f9dc0b6c8a6804a78e88c44018d6148bdf4c64c3
      https://github.com/llvm/llvm-project/commit/f9dc0b6c8a6804a78e88c44018d6148bdf4c64c3
  Author: Danial Klimkin <dklimkin at users.noreply.github.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

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

  Log Message:
  -----------
  Fix bazel build past 3fdb431b636975f2062b1931158aa4dfce6a3ff1 (#79429)


  Commit: 45fec0c110cccd5e0c9b60d51bc2ffc1645c9a40
      https://github.com/llvm/llvm-project/commit/45fec0c110cccd5e0c9b60d51bc2ffc1645c9a40
  Author: Daniil Dudkin <unterumarmung at yandex.ru>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M clang-tools-extra/clang-apply-replacements/lib/Tooling/ApplyReplacements.cpp
    A clang-tools-extra/test/clang-apply-replacements/Inputs/yml-basic/basic.h
    A clang-tools-extra/test/clang-apply-replacements/Inputs/yml-basic/file1.yml
    A clang-tools-extra/test/clang-apply-replacements/Inputs/yml-basic/file2.yml
    A clang-tools-extra/test/clang-apply-replacements/yml-basic.cpp

  Log Message:
  -----------
  [clang-apply-replacements] Add support for the `.yml` file extension (#78842)

The `.yml` file extension is a valid extension for the YAML files, but
it was not previously supported by the Clang Apply Replacements tool.
This commit adds support for processing `.yml` files. Without this
change, running the tool on a folder containing `.yml` files generated
by clang-tidy would have no effect.


  Commit: 5cc0f76d34c7d00fa3e4ff01efe24d5de592e82c
      https://github.com/llvm/llvm-project/commit/5cc0f76d34c7d00fa3e4ff01efe24d5de592e82c
  Author: Matthias Springer <me at m-sp.org>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M flang/include/flang/Optimizer/Builder/FIRBuilder.h
    M flang/lib/Optimizer/HLFIR/Transforms/BufferizeHLFIR.cpp
    M mlir/include/mlir/IR/Builders.h
    M mlir/include/mlir/IR/PatternMatch.h
    M mlir/include/mlir/Transforms/DialectConversion.h
    M mlir/lib/Dialect/Affine/IR/AffineOps.cpp
    M mlir/lib/Dialect/Async/Transforms/AsyncParallelFor.cpp
    M mlir/lib/Dialect/Bufferization/Transforms/Bufferize.cpp
    M mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp
    M mlir/lib/Dialect/SCF/Transforms/ForToWhile.cpp
    M mlir/lib/Dialect/Tensor/Transforms/BufferizableOpInterfaceImpl.cpp
    M mlir/lib/IR/Builders.cpp
    M mlir/lib/IR/PatternMatch.cpp
    M mlir/lib/Transforms/Utils/DialectConversion.cpp
    M mlir/lib/Transforms/Utils/GreedyPatternRewriteDriver.cpp
    M mlir/lib/Transforms/Utils/LoopInvariantCodeMotionUtils.cpp
    M mlir/test/lib/Dialect/SCF/TestSCFUtils.cpp
    M mlir/test/lib/Dialect/Test/TestPatterns.cpp
    M mlir/test/lib/IR/TestClone.cpp
    M mlir/test/lib/Transforms/TestConstantFold.cpp

  Log Message:
  -----------
  [mlir][IR] Add rewriter API for moving operations (#78988)

The pattern rewriter documentation states that "*all* IR mutations [...]
are required to be performed via the `PatternRewriter`." This commit
adds two functions that were missing from the rewriter API:
`moveOpBefore` and `moveOpAfter`.

After an operation was moved, the `notifyOperationInserted` callback is
triggered. This allows listeners such as the greedy pattern rewrite
driver to react to IR changes.

This commit narrows the discrepancy between the kind of IR modification
that can be performed and the kind of IR modifications that can be
listened to.


  Commit: bcd14b099dd3d0b9c9336e5cdf7e35279c5cc33b
      https://github.com/llvm/llvm-project/commit/bcd14b099dd3d0b9c9336e5cdf7e35279c5cc33b
  Author: Kohei Yamaguchi <fix7211 at gmail.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

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

  Log Message:
  -----------
  [mlir][bufferization] Fix SimplifyClones with dealloc before cloneOp (#79098)

The SimplifyClones pass relies on the assumption that the deallocOp
follows the cloneOp. However, a crash occurs when there is a
redundantDealloc preceding the cloneOp. This PR addresses the issue by
ensuring the presence of deallocOp after cloneOp. The verification is
performed by checking if the loop of the sub sequent node of cloneOp
reaches the tail of the list.

Fix #74306


  Commit: e4375bf47fafb0cfcb2288ecfad94dfe63ca994c
      https://github.com/llvm/llvm-project/commit/e4375bf47fafb0cfcb2288ecfad94dfe63ca994c
  Author: Mikael Holmen <mikael.holmen at ericsson.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

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

  Log Message:
  -----------
  [X86] Fix warning about unused variable [NFC]

Without this gcc complains like
 ../lib/Target/X86/X86FixupVectorConstants.cpp:70:13: warning: unused variable 'CUndef' [-Wunused-variable]
    70 |   if (auto *CUndef = dyn_cast<UndefValue>(C))
       |             ^~~~~~

Remove the unused variable and change dyn_cast to isa.


  Commit: 2aa8945d5957b25473c42e9edc6788ae54bb1f2f
      https://github.com/llvm/llvm-project/commit/2aa8945d5957b25473c42e9edc6788ae54bb1f2f
  Author: Ivan Kosarev <ivan.kosarev at amd.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
    M llvm/lib/Target/AMDGPU/SIRegisterInfo.td

  Log Message:
  -----------
  [AMDGPU][NFC] Use templates to decode AV operands. (#79313)

Eliminates the need to define them manually.

Part of <https://github.com/llvm/llvm-project/issues/62629>.


  Commit: 4b8e55cb04e68053a80f4ee26f4efbf08fe30b02
      https://github.com/llvm/llvm-project/commit/4b8e55cb04e68053a80f4ee26f4efbf08fe30b02
  Author: Ivan Kosarev <ivan.kosarev at amd.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/BUFInstructions.td
    M llvm/lib/Target/AMDGPU/DSDIRInstructions.td
    M llvm/lib/Target/AMDGPU/DSInstructions.td
    M llvm/lib/Target/AMDGPU/SIInstrInfo.td
    M llvm/lib/Target/AMDGPU/VINTERPInstructions.td
    M llvm/lib/Target/AMDGPU/VOP1Instructions.td
    M llvm/lib/Target/AMDGPU/VOP2Instructions.td
    M llvm/lib/Target/AMDGPU/VOP3Instructions.td
    M llvm/lib/Target/AMDGPU/VOP3PInstructions.td
    M llvm/lib/Target/AMDGPU/VOPCInstructions.td

  Log Message:
  -----------
  [AMDGPU][AsmParser][NFC] Rename integer modifier operands to follow the convention. (#79284)

Part of <https://github.com/llvm/llvm-project/issues/62629>.


  Commit: 223d3dabc8b75a75276ef0544132ba0df4498fb3
      https://github.com/llvm/llvm-project/commit/223d3dabc8b75a75276ef0544132ba0df4498fb3
  Author: David Green <david.green at arm.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M flang/include/flang/Optimizer/Support/Utils.h
    M flang/lib/Optimizer/HLFIR/Transforms/OptimizedBufferization.cpp
    M flang/lib/Optimizer/Transforms/SimplifyIntrinsics.cpp
    A flang/test/HLFIR/minloc-elemental.fir
    M flang/test/Transforms/simplifyintrinsics.fir

  Log Message:
  -----------
  [Flang] Minloc elemental intrinsic lowering (#74828)

Currently the lowering of a minloc intrinsic with a mask will look something
like:
  %e = hlfir.elemental %shape ({
    ...
  })
  %m = hlfir.minloc %array mask %e
  hlfir.assign %m to %result
  hlfir.destroy %m
The elemental will be expanded into a temporary+loop, the minloc into a
FortranAMinloc call (which hopefully gets simplified to a specialized call that
can be inlined at the call site), and the assign might get expanded to a
FortranAAssign. It would be better to generate the entire construct as single
loop if we can - one that performs the minloc calculation with the mask
elemental computed inline.

This patch attempt to do that, adding a hlfir version of the expansion code
from SimplifyIntrinsics that turns an minloc+elemental into a single combined
loop nest. It attempts to reuse the methods in genMinlocReductionLoop for
constructing the loop with a modified loop body. The declaration for the
function is currently in Optimizer/Support/Utils.h, but there might be a better
place for it.

It is added as part of the OptimizedBufferizationPass, like the
similar count/any/all that have been added recently.


  Commit: f4ed7f8d0a3830d05e53476fc64966e871bf9454
      https://github.com/llvm/llvm-project/commit/f4ed7f8d0a3830d05e53476fc64966e871bf9454
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

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

  Log Message:
  -----------
  [clang][Parse][NFC] Make a local variable const


  Commit: a04f6152914ea21f3068aaba9d8fc21d2e703d3e
      https://github.com/llvm/llvm-project/commit/a04f6152914ea21f3068aaba9d8fc21d2e703d3e
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    A llvm/test/Transforms/LoopVectorize/vplan-native-inner-loop-only.ll

  Log Message:
  -----------
  [LV] Check for innermost loop instead of EnableVPlanNativePath in CM.

Replace EnableVPlanNativePath checks in the cost-model by assertions
that the code is only called for innermost loops. This ensures that the
cost model isn't used in the VPlanNativePath, which is only used for
outer-loop vectorization.

Even with EnableVPlanNativePath, inner loops are processed by the
inner loop vectorization path, not the native path, so checking for
EnableVPlanNativePath may impact decisions for inner loops and can
cause crashes, like in the attached test case.


  Commit: e5e1a8931044fe384f222fe0af4a1de595b941a3
      https://github.com/llvm/llvm-project/commit/e5e1a8931044fe384f222fe0af4a1de595b941a3
  Author: Nico Weber <thakis at chromium.org>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

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

  Log Message:
  -----------
  [gn] port 12a8bc09ca4f


  Commit: 8252137b9a6b909c308123f64a41d1fff6fdcbca
      https://github.com/llvm/llvm-project/commit/8252137b9a6b909c308123f64a41d1fff6fdcbca
  Author: jeanPerier <jperier at nvidia.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M flang/lib/Lower/ConvertExprToHLFIR.cpp
    M flang/test/Lower/structure-constructors-alloc-comp.f90

  Log Message:
  -----------
  [flang] Lower struct ctor with character allocatable components (#79179)

There is no need to gather the length parameters from the parameter
symbols when facing a deferred length allocatable components in a
structure constructor, the length is set as part of the assignment given
the value.

Remove the checks for derived type runtime info symbols, this is not
relevant for what is being tested here.


  Commit: 3490f037c3c750416ad224147b32c92bf6c7db0f
      https://github.com/llvm/llvm-project/commit/3490f037c3c750416ad224147b32c92bf6c7db0f
  Author: Danial Klimkin <dklimkin at users.noreply.github.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

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

  Log Message:
  -----------
  More bazel fixes past 72ce6294157964042b7ed5576ce2c99257eeea9d (#79442)


  Commit: 47a2e732100c4102a1a5f3243123638f157c9a2a
      https://github.com/llvm/llvm-project/commit/47a2e732100c4102a1a5f3243123638f157c9a2a
  Author: Jeremy Morse <jeremy.morse at sony.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M llvm/include/llvm/IR/DebugProgramInstruction.h
    M llvm/include/llvm/IR/Instruction.h
    M llvm/lib/IR/Instruction.cpp

  Log Message:
  -----------
  [DebugInfo][RemoveDIs] Make getDbgValueRange inlineable (#79331)

`getDbgValueRange` is the replacement of a common LLVM idiom of:
  1) Am I currently looking at a `DbgVariableIntrinsic` instruction?
  2) Let's do something special with it!

We instead iterate over the range of DPValues attached to an instruction
and do special things with those. Unfortunately in the common case of
"there is no debug-info", this generates a spurious function call that's
paid by non-debug builds.

To get around this, make `getDbgValueRange` inlineable so that the "`if
(DbgMarker)`" test can be inlined and guard the more expensive call. The
false path should be optimisable-awayable to skipping the loop. However,
due to header inclusion order we can't just make
`Instruction::getDbgValueRange` inline because `DPMarker` hasn't been
declared yet. So, define an inlinable function in the llvm:: namespace
and pre-declare it -- the eventual code should be inlineable almost 100%
of the time.


  Commit: cd0b0055a730e55f2f14f35172e05dc27642f8ce
      https://github.com/llvm/llvm-project/commit/cd0b0055a730e55f2f14f35172e05dc27642f8ce
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

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

  Log Message:
  -----------
  [clang][Interp][NFC] Add some working _Complex tests


  Commit: 215b8f1e252b4f30cf1b734faa370c0ac4b88659
      https://github.com/llvm/llvm-project/commit/215b8f1e252b4f30cf1b734faa370c0ac4b88659
  Author: Jeremy Morse <jeremy.morse at sony.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M llvm/lib/Bitcode/Reader/BitcodeReader.cpp
    M llvm/lib/IR/LegacyPassManager.cpp
    M llvm/lib/Linker/IRMover.cpp
    M llvm/lib/Transforms/Utils/ValueMapper.cpp
    M llvm/test/LTO/X86/pr38046.ll
    M llvm/test/Linker/debug-info-use-before-def.ll
    M llvm/test/Linker/thinlto_funcimport_debug.ll
    M llvm/test/ThinLTO/X86/debuginfo-cu-import.ll
    M llvm/test/ThinLTO/X86/pr35472.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:
  -----------
  [DebugInfo][RemoveDIs] Convert debug-info modes when loading bitcode (#78967)

As part of eliminating debug-intrinsics in LLVM, we'll shortly be
pushing the conversion from "old" dbg.value mode to "new" DPValue mode
out from when the pass manager runs, to when modules are loaded. This
patch adds that conversion process and some (temporary) options to
llvm-lto{,2} to help test it.

Specifically: now whenever we load a bitcode module, consider a flag of
whether to "upgrade" it into the new debug-info mode, and if we're
lazily materializing functions then do that lazily too. Doing this
exposes an error in the IRLinker/materializer handling of DPValues,
where we need to transfer the debug-info format flag correctly, and in
ValueMapper we need to remap the Values that DPValues point at.

I've added some test coverage in the modified tests; these will be
exercised by our llvm-new-debug-iterators buildbot.

This upgrading of debug-info won't be happening for the llvm18 release,
instead we'll turn it on after the branch date, thenbe push the boundary
of where "new" debug-info starts and ends down into the existing
debug-info upgrade path over the course of the next release.


  Commit: b0b7be2701845484f92295daa95b80a13e24f9b2
      https://github.com/llvm/llvm-project/commit/b0b7be2701845484f92295daa95b80a13e24f9b2
  Author: Ivan Kosarev <ivan.kosarev at amd.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
    M llvm/lib/Target/AMDGPU/SIRegisterInfo.td

  Log Message:
  -----------
  [AMDGPU][NFC] Rename the reg-or-imm operand predicates to match their class names. (#79439)

No need to have two names for the same thing. Also simplifies operand
definitions.

Part of <https://github.com/llvm/llvm-project/issues/62629>.


  Commit: 202917f86ebcbed5c8bc10e0cc7cce820747e3cb
      https://github.com/llvm/llvm-project/commit/202917f86ebcbed5c8bc10e0cc7cce820747e3cb
  Author: David Green <david.green at arm.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M flang/include/flang/Optimizer/Support/Utils.h
    M flang/lib/Optimizer/Transforms/SimplifyIntrinsics.cpp

  Log Message:
  -----------
  [Flang] Move genMinMaxlocReductionLoop to a common location.

The shared library build doesn't like references of genMinMaxlocReductionLoop,
in Optimizer/Transforms, from HLFIR/Optimizer/Transforms. For the moment I've
moved the code to the header file where it can be shared, like other methods in
Utils.h


  Commit: 71c52e4236a9eb586a9271240442c5dbfce17488
      https://github.com/llvm/llvm-project/commit/71c52e4236a9eb586a9271240442c5dbfce17488
  Author: Nico Weber <thakis at chromium.org>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

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

  Log Message:
  -----------
  [gn build] Port 3fdb431b6369


  Commit: 45cc2a19cad7c3b180da67a27199fb5a1e17a71f
      https://github.com/llvm/llvm-project/commit/45cc2a19cad7c3b180da67a27199fb5a1e17a71f
  Author: Nico Weber <thakis at chromium.org>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

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

  Log Message:
  -----------
  [gn] port 12a8bc0 more

The test reaches into internal headers. Make sure generated files
are ready for that.

(This is the only place. If there were more, we should use public_deps
instead.)


  Commit: a04d4a03f7737202b5cd05687e08ed8748ef7352
      https://github.com/llvm/llvm-project/commit/a04d4a03f7737202b5cd05687e08ed8748ef7352
  Author: John Brawn <john.brawn at arm.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M llvm/lib/Transforms/Scalar/LoopFlatten.cpp
    M llvm/test/Transforms/LoopFlatten/loop-flatten-negative.ll
    A llvm/test/Transforms/LoopFlatten/loop-flatten-version.ll
    M llvm/test/Transforms/LoopFlatten/widen-iv.ll

  Log Message:
  -----------
  [LoopFlatten] Use loop versioning when overflow can't be disproven (#78576)

Implement the TODO in loop flattening to version the loop when we can't
prove that the trip count calculation won't overflow.


  Commit: c3f7fb1421e1dbf2fb1d5594bfa801489bdab421
      https://github.com/llvm/llvm-project/commit/c3f7fb1421e1dbf2fb1d5594bfa801489bdab421
  Author: Jeremy Morse <jeremy.morse at sony.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M llvm/lib/Bitcode/Reader/BitcodeReader.cpp
    M llvm/lib/IR/LegacyPassManager.cpp
    M llvm/lib/Linker/IRMover.cpp
    M llvm/lib/Transforms/Utils/ValueMapper.cpp
    M llvm/test/LTO/X86/pr38046.ll
    M llvm/test/Linker/debug-info-use-before-def.ll
    M llvm/test/Linker/thinlto_funcimport_debug.ll
    M llvm/test/ThinLTO/X86/debuginfo-cu-import.ll
    M llvm/test/ThinLTO/X86/pr35472.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:
  -----------
  Revert "[DebugInfo][RemoveDIs] Convert debug-info modes when loading bitcode (#78967)"

This reverts commit 215b8f1e252b4f30cf1b734faa370c0ac4b88659.

Numerous builders exploded from this X_X, for example

  https://lab.llvm.org/buildbot/#/builders/46/builds/62657


  Commit: 6fe21bc1dac883efa0dfa807f327048ae9969b81
      https://github.com/llvm/llvm-project/commit/6fe21bc1dac883efa0dfa807f327048ae9969b81
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    A llvm/test/Transforms/SLPVectorizer/X86/extractelement-multi-register-use.ll

  Log Message:
  -----------
  [SLP]Fix PR79229: Do not erase extractelement, if it used in
multiregister node.

If the node can be span between several registers and same
extractelement instruction is used in several parts, it may be required
to keep such extractelement instruction to avoid compiler crash.


  Commit: ee15e2bd32a4677c40d927c732b26d33f88d7865
      https://github.com/llvm/llvm-project/commit/ee15e2bd32a4677c40d927c732b26d33f88d7865
  Author: Alexandre Ganea <alex_toresh at yahoo.fr>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

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

  Log Message:
  -----------
  [clang] Silence warning when building with MSVC targetting x86

This fixes:
```
[3786/6996] Building CXX object tools\clang\lib\AST\CMakeFiles\obj.clangAST.dir\AttrDocTable.cpp.obj
C:\git\llvm-project\clang\lib\AST\AttrDocTable.cpp(24): warning C4018: '<': signed/unsigned mismatch
```


  Commit: 419d6ea135dd205e1eaab368a58ae14f9f52f699
      https://github.com/llvm/llvm-project/commit/419d6ea135dd205e1eaab368a58ae14f9f52f699
  Author: Alexandre Ganea <alex_toresh at yahoo.fr>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

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

  Log Message:
  -----------
  [clang] Silence warning when compiling with MSVC targetting x86

This fixes:
```
[3963/6996] Building CXX object tools\clang\lib\CodeGen\CMakeFiles\obj.clangCodeGen.dir\CGExpr.cpp.obj
C:\git\llvm-project\clang\lib\CodeGen\CGExpr.cpp(3808): warning C4018: '<=': signed/unsigned mismatch
```


  Commit: f33f5a04e9feeb9b473694825d84da8322f87df9
      https://github.com/llvm/llvm-project/commit/f33f5a04e9feeb9b473694825d84da8322f87df9
  Author: Alexandre Ganea <alex_toresh at yahoo.fr>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

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

  Log Message:
  -----------
  [clangd] Silence warning when compiling with MSVC targetting x86

This fixes:
```
[5240/6995] Building CXX object tools\clang\tools\extra\clangd\CMakeFiles\obj.clangDaemon.dir\InlayHints.cpp.obj
C:\git\llvm-project\clang-tools-extra\clangd\InlayHints.cpp(1098): warning C4018: '<': signed/unsigned mismatch
```


  Commit: 3fec25c55f1890c138e64548dc074b4593e0a26c
      https://github.com/llvm/llvm-project/commit/3fec25c55f1890c138e64548dc074b4593e0a26c
  Author: Alexandre Ganea <alex_toresh at yahoo.fr>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M lld/COFF/PDB.cpp

  Log Message:
  -----------
  [LLD] Silence warning when compiling with MSVC targetting x86

This fixes:
```
[5383/6995] Building CXX object tools\lld\COFF\CMakeFiles\lldCOFF.dir\PDB.cpp.obj
C:\git\llvm-project\lld\COFF\PDB.cpp(835): warning C4018: '>=': signed/unsigned mismatch
```


  Commit: 452a2c6e3575d56a34c34472b9f829cb17e2b564
      https://github.com/llvm/llvm-project/commit/452a2c6e3575d56a34c34472b9f829cb17e2b564
  Author: Alexandre Ganea <alex_toresh at yahoo.fr>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M llvm/include/llvm/ExecutionEngine/Orc/MachOBuilder.h

  Log Message:
  -----------
  [llvm] Silence warning when compiling with MSVC targetting x86

This fixes:
```
[1614/6998] Building CXX object lib\ExecutionEngine\Orc\CMakeFiles\LLVMOrcJIT.dir\MachOPlatform.cpp.obj
C:\git\llvm-project\llvm\include\llvm/ExecutionEngine/Orc/MachOBuilder.h(367): warning C4334: '<<': result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?)
```


  Commit: 3db3e2cea321aba58fcf1905e06a92567e892588
      https://github.com/llvm/llvm-project/commit/3db3e2cea321aba58fcf1905e06a92567e892588
  Author: Alexandre Ganea <alex_toresh at yahoo.fr>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M llvm/lib/Object/DXContainer.cpp

  Log Message:
  -----------
  [llvm] Silence warning when compiling with MSVC targetting x86

This fixes:
```
[1265/6998] Building CXX object lib\Object\CMakeFiles\LLVMObject.dir\DXContainer.cpp.obj
C:\git\llvm-project\llvm\lib\Object\DXContainer.cpp(344): warning C4018: '<': signed/unsigned mismatch
```


  Commit: f42f551d12466c5f17f91cb44592e8dcb4118f07
      https://github.com/llvm/llvm-project/commit/f42f551d12466c5f17f91cb44592e8dcb4118f07
  Author: Alexandre Ganea <alex_toresh at yahoo.fr>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M llvm/lib/ObjectYAML/COFFYAML.cpp

  Log Message:
  -----------
  [llvm] Silence warning when compiling with MSVC targetting x86

This fixes:
```
[1304/6998] Building CXX object lib\ObjectYAML\CMakeFiles\LLVMObjectYAML.dir\COFFYAML.cpp.obj
C:\git\llvm-project\llvm\lib\ObjectYAML\COFFYAML.cpp(561): warning C4018: '<': signed/unsigned mismatch
```


  Commit: 03e4070ce1f834eb426aa8f8622838c40ff5c710
      https://github.com/llvm/llvm-project/commit/03e4070ce1f834eb426aa8f8622838c40ff5c710
  Author: Alexandre Ganea <alex_toresh at yahoo.fr>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

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

  Log Message:
  -----------
  [lldb] Silence warning when building with Clang ToT

This fixes:
```
[6331/7452] Building CXX object tools\lldb\source\Plugins\Language\CPlusPlus\CMakeFiles\lldbPluginCPlusPlusLanguage.dir\LibCxx.cpp.obj
C:\git\llvm-project\lldb\source\Plugins\Language\CPlusPlus\LibCxx.cpp(1108,38): warning: format specifies type 'long' but the argument has type 'std::time_t' (aka 'long long') [-Wformat]
 1108 |     stream.Printf("timestamp=%ld s", seconds);
      |                              ~~~     ^~~~~~~
      |                              %lld
C:\git\llvm-project\lldb\source\Plugins\Language\CPlusPlus\LibCxx.cpp(1116,63): warning: format specifies type 'long' but the argument has type 'std::time_t' (aka 'long long') [-Wformat]
 1116 |     stream.Printf("date/time=%s timestamp=%ld s", str.data(), seconds);
      |                                           ~~~                 ^~~~~~~
      |                                           %lld
2 warnings generated.
```


  Commit: 40dcf24522af91ab22af2e69f28d1f1d2a860f5c
      https://github.com/llvm/llvm-project/commit/40dcf24522af91ab22af2e69f28d1f1d2a860f5c
  Author: Alexandre Ganea <alex_toresh at yahoo.fr>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M compiler-rt/lib/sanitizer_common/tests/sanitizer_bitvector_test.cpp

  Log Message:
  -----------
  [compiler-rt] Silence warning when building with Clang ToT

This fixes:
```
[24/47] Generating SANITIZER_TEST_OBJECTS.sanitizer_bitvector_test.cpp.i386.o
C:/git/llvm-project/compiler-rt/lib/sanitizer_common/tests/sanitizer_bitvector_test.cpp:74:29: warning: format specifies type 'size_t' (aka 'unsigned int') but the argument has type 'value_type' (aka 'unsigned long') [-Wformat]
   74 |     fprintf(stderr, "%zu ", *it);
      |                      ~~~    ^~~
      |                      %lu
1 warning generated.
```


  Commit: af263ceb90b9fe39ae1d3458c9f35b6b199d3951
      https://github.com/llvm/llvm-project/commit/af263ceb90b9fe39ae1d3458c9f35b6b199d3951
  Author: Alexandre Ganea <alex_toresh at yahoo.fr>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M lld/ELF/MapFile.cpp

  Log Message:
  -----------
  [LLD][ELF] Silence warning when building with Clang ToT

This fixes:
```
[5839/7452] Building CXX object tools\lld\ELF\CMakeFiles\lldELF.dir\MapFile.cpp.obj
C:\git\llvm-project\lld\ELF\MapFile.cpp(124,38): warning: comparison of integers of different signs: 'uint32_t' (aka 'unsigned int') and 'const ssize_t' (aka 'const int') [-Wsign-compare]
  124 |           last.outputOff + last.size == p.outputOff) {
      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~ ^  ~~~~~~~~~~~
1 warning generated.
```


  Commit: 43ab40a5baba4945efa6d6050ae34817c8044ebf
      https://github.com/llvm/llvm-project/commit/43ab40a5baba4945efa6d6050ae34817c8044ebf
  Author: Alexandre Ganea <alex_toresh at yahoo.fr>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M llvm/lib/Object/ELFObjectFile.cpp

  Log Message:
  -----------
  [llvm] Silence warning when building with Clang ToT

This fixes:
```
[1343/7452] Building CXX object lib\Object\CMakeFiles\LLVMObject.dir\ELFObjectFile.cpp.obj
C:\git\llvm-project\llvm\lib\Object\ELFObjectFile.cpp(808,27): warning: comparison of integers of different signs: 'unsigned int' and '_Iter_diff_t<const Elf_Shdr_Impl<ELFType<llvm::endianness::little, false>> *>' (aka 'int') [-Wsign-compare]
  808 |     if (*TextSectionIndex != std::distance(Sections.begin(), *TextSecOrErr))
      |         ~~~~~~~~~~~~~~~~~ ^  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\git\llvm-project\llvm\lib\Object\ELFObjectFile.cpp(913,12): note: in instantiation of function template specialization 'readBBAddrMapImpl<llvm::object::ELFType<llvm::endianness::little, false>>' requested here
  913 |     return readBBAddrMapImpl(Obj->getELFFile(), TextSectionIndex, PGOAnalyses);
      |            ^
```


  Commit: ca0e2417912d8dea49c053186402aafe1ac8995a
      https://github.com/llvm/llvm-project/commit/ca0e2417912d8dea49c053186402aafe1ac8995a
  Author: Alexandre Ganea <alex_toresh at yahoo.fr>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M openmp/runtime/src/kmp_os.h

  Log Message:
  -----------
  [openmp] Silence warning when compiling with MSVC targetting x86

This fixes:
```
[3593/7449] Building CXX object projects\openmp\runtime\src\CMakeFiles\omp.dir\kmp_debug.cpp.obj
C:\git\llvm-project\openmp\runtime\src\kmp_os.h(471): warning C4163: '_InlineInterlockedExchange64': not available as an intrinsic function
```


  Commit: ad3cda7a04d4858816cbf38df63dc86d370c2587
      https://github.com/llvm/llvm-project/commit/ad3cda7a04d4858816cbf38df63dc86d370c2587
  Author: Han-Chung Wang <hanhan0912 at gmail.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M mlir/lib/Dialect/Tensor/Transforms/PackAndUnpackPatterns.cpp
    M mlir/test/Dialect/Tensor/simplify-pack-unpack.mlir

  Log Message:
  -----------
  [mlir][tensor] Enhance SimplifyUnPackToCollapseShape for unit dim cases. (#79262)


  Commit: 43e46c546a1f0c7c3e436104a974560c6a2e5188
      https://github.com/llvm/llvm-project/commit/43e46c546a1f0c7c3e436104a974560c6a2e5188
  Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

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

  Log Message:
  -----------
  [clang] Add test for CWG472 (#67948)

https://cplusplus.github.io/CWG/issues/472.html
It has drafting status, but I think CWG has reached consesus on the
behavior.
Related: #16602


  Commit: 1f8c3c3ab1321c3e3fb10a5f75851165dfc8c5a5
      https://github.com/llvm/llvm-project/commit/1f8c3c3ab1321c3e3fb10a5f75851165dfc8c5a5
  Author: Ivan Kosarev <ivan.kosarev at amd.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

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

  Log Message:
  -----------
  [AMDGPU][NFC] Eliminate unnecessary operand classes. (#79450)

These do not seem to remove many repetitions or add clarity; many of
them are only used once.

Not having them also helps further work getting rid of the decoding
functions defined using macros.

Part of <https://github.com/llvm/llvm-project/issues/62629>.


  Commit: 8ff16f646f84c20a298374c7fd3d2b7f9fefe776
      https://github.com/llvm/llvm-project/commit/8ff16f646f84c20a298374c7fd3d2b7f9fefe776
  Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M mlir/lib/Conversion/ArmSMEToSCF/ArmSMEToSCF.cpp
    M mlir/test/Conversion/ArmSMEToSCF/arm-sme-to-scf.mlir

  Log Message:
  -----------
  [mlir][ArmSME] Refactor ArmSMEToSCF to used shared loop-building helper (NFC) (#79172)

This will make fixing a bug (next patch) a change to one place, rather
than fixing three separate rewrites.

Note: `TileLoadOpWithMaskAndPadZeroConversion` has been merged into
`TileLoadOpConversion`, since after this change those two rewrites were
pretty much identical.


  Commit: 66c710ec9dcdbdec6cadd89b972d8945983dc92f
      https://github.com/llvm/llvm-project/commit/66c710ec9dcdbdec6cadd89b972d8945983dc92f
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
    M llvm/lib/Target/AMDGPU/SIISelLowering.cpp

  Log Message:
  -----------
  [AMDGPU] Do not bother adding reserved registers to liveins (#79436)

Tweak the implementation of llvm.amdgcn.wave.id to not add TTMP8 to the
function liveins.


  Commit: 3f37df5b711773bfd962b703b6d4178e6d16c076
      https://github.com/llvm/llvm-project/commit/3f37df5b711773bfd962b703b6d4178e6d16c076
  Author: erman-gurses <99776114+erman-gurses at users.noreply.github.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/AMDGPU/IR/AMDGPU.td
    M mlir/include/mlir/Dialect/AMDGPU/Transforms/Passes.h
    M mlir/include/mlir/Dialect/AMDGPU/Transforms/Passes.td
    A mlir/include/mlir/Dialect/AMDGPU/Transforms/Transforms.h
    A mlir/include/mlir/Dialect/AMDGPU/Transforms/Utils.h
    M mlir/lib/Dialect/AMDGPU/IR/AMDGPUDialect.cpp
    M mlir/lib/Dialect/AMDGPU/Transforms/CMakeLists.txt
    A mlir/lib/Dialect/AMDGPU/Transforms/OptimizeSharedMemory.cpp
    A mlir/lib/Dialect/AMDGPU/Transforms/Utils.cpp
    A mlir/test/Dialect/AMDGPU/optimize_shmem_reads_writes.mlir

  Log Message:
  -----------
  [reland][mlir][amdgpu] Shared memory access optimization pass (#79164)

- Reland: https://github.com/llvm/llvm-project/pull/75627

- Reproduced then fixed the build issue


  Commit: f1b1611148fa533fe198fec3fa4ef8139224dc80
      https://github.com/llvm/llvm-project/commit/f1b1611148fa533fe198fec3fa4ef8139224dc80
  Author: Sean Fertile <35576261+mandlebug at users.noreply.github.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M clang/lib/Driver/Driver.cpp
    M clang/test/Driver/fat-lto-objects.c

  Log Message:
  -----------
  [LTO] Fix fat-lto output for -c -emit-llvm. (#79404)

Fix and add a test case for combining '-ffat-lto-objects -c -emit-llvm'
options and fix a spelling mistake in same test.


  Commit: 9b71393569ae4508d78b8a21993c21530bfdccc5
      https://github.com/llvm/llvm-project/commit/9b71393569ae4508d78b8a21993c21530bfdccc5
  Author: NagyDonat <donat.nagy at ericsson.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

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

  Log Message:
  -----------
  [analyzer] Avoid a crash in a debug printout function (#79446)

Previously the function `RangeConstraintManager::printValue()` crashed
when it encountered an empty rangeset (because `RangeSet::getBitwidth()`
and `RangeSet::isUnsigned()` assert that the rangeset is not empty).
This commit adds a special case that avoids this behavior.

As `printValue()` is only used by the checker debug.ExprInspection (and
during manual debugging), the impacts of this commit are very limited.

---------

Co-authored-by: Balazs Benics <benicsbalazs at gmail.com>


  Commit: c5d59fe1b27414387b598e11b9e33d2f13dff87e
      https://github.com/llvm/llvm-project/commit/c5d59fe1b27414387b598e11b9e33d2f13dff87e
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPU.td
    M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-mad_64_32.mir
    M llvm/test/CodeGen/AMDGPU/mad_64_32.ll

  Log Message:
  -----------
  [AMDGPU] Disable V_MAD_U64_U32/V_MAD_I64_I32 workaround for GFX11.5 (#79460)

The hardware bug only affects GFX11.0.x.


  Commit: 1f454ede4660477c3782595975def90c26c19881
      https://github.com/llvm/llvm-project/commit/1f454ede4660477c3782595975def90c26c19881
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

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

  Log Message:
  -----------
  [RISCV] Fix TLSDESC comment. NFC (#79403)

Fix comment typos in #66915, and relocation type names related to the
example in the psABI
(https://github.com/riscv-non-isa/riscv-elf-psabi-doc/pull/420).


  Commit: 184ca39529a93e69eb175861d7fff5fc79988e53
      https://github.com/llvm/llvm-project/commit/184ca39529a93e69eb175861d7fff5fc79988e53
  Author: Nico Weber <thakis at chromium.org>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M llvm/include/llvm/CodeGen/BasicTTIImpl.h
    M llvm/include/llvm/CodeGen/CostTable.h
    M llvm/include/llvm/CodeGen/FastISel.h
    M llvm/include/llvm/CodeGen/GlobalISel/CallLowering.h
    M llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h
    M llvm/include/llvm/CodeGen/GlobalISel/GIMatchTableExecutor.h
    M llvm/include/llvm/CodeGen/GlobalISel/LegacyLegalizerInfo.h
    M llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h
    M llvm/include/llvm/CodeGen/GlobalISel/Utils.h
    R llvm/include/llvm/CodeGen/LowLevelType.h
    M llvm/include/llvm/CodeGen/LowLevelTypeUtils.h
    M llvm/include/llvm/CodeGen/MachineMemOperand.h
    R llvm/include/llvm/CodeGen/MachineValueType.h
    M llvm/include/llvm/CodeGen/RegisterBankInfo.h
    M llvm/include/llvm/CodeGen/SelectionDAG.h
    M llvm/include/llvm/CodeGen/SelectionDAGNodes.h
    M llvm/include/llvm/CodeGen/TargetCallingConv.h
    M llvm/include/llvm/CodeGen/TargetLowering.h
    M llvm/include/llvm/CodeGen/ValueTypes.h
    A llvm/include/llvm/CodeGenTypes/LowLevelType.h
    A llvm/include/llvm/CodeGenTypes/MachineValueType.h
    M llvm/include/module.modulemap
    M llvm/lib/CMakeLists.txt
    M llvm/lib/CodeGen/AggressiveAntiDepBreaker.cpp
    M llvm/lib/CodeGen/CMakeLists.txt
    M llvm/lib/CodeGen/CodeGenPrepare.cpp
    M llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
    M llvm/lib/CodeGen/GlobalISel/LegalizerInfo.cpp
    R llvm/lib/CodeGen/LowLevelType.cpp
    M llvm/lib/CodeGen/MIRParser/MIParser.cpp
    M llvm/lib/CodeGen/MIRPrinter.cpp
    M llvm/lib/CodeGen/MachineInstr.cpp
    M llvm/lib/CodeGen/MachineScheduler.cpp
    M llvm/lib/CodeGen/MachineVerifier.cpp
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    M llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
    M llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
    M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
    M llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp
    M llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.h
    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/SelectionDAGISel.cpp
    M llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp
    M llvm/lib/CodeGen/TargetLoweringBase.cpp
    M llvm/lib/CodeGen/TargetRegisterInfo.cpp
    A llvm/lib/CodeGenTypes/CMakeLists.txt
    A llvm/lib/CodeGenTypes/LowLevelType.cpp
    M llvm/lib/Target/AArch64/AArch64FastISel.cpp
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/lib/Target/AArch64/GISel/AArch64CallLowering.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUGlobalISelUtils.cpp
    M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
    M llvm/lib/Target/ARM/ARMCallLowering.cpp
    M llvm/lib/Target/ARM/ARMFastISel.cpp
    M llvm/lib/Target/ARM/ARMISelLowering.cpp
    M llvm/lib/Target/ARM/ARMISelLowering.h
    M llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
    M llvm/lib/Target/Hexagon/HexagonISelLowering.h
    M llvm/lib/Target/Hexagon/HexagonInstrInfo.cpp
    M llvm/lib/Target/Hexagon/HexagonInstrInfo.h
    M llvm/lib/Target/Lanai/LanaiISelLowering.cpp
    M llvm/lib/Target/M68k/M68kMachineFunction.h
    M llvm/lib/Target/Mips/MCTargetDesc/MipsABIInfo.cpp
    M llvm/lib/Target/Mips/MipsFastISel.cpp
    M llvm/lib/Target/Mips/MipsISelLowering.cpp
    M llvm/lib/Target/Mips/MipsISelLowering.h
    M llvm/lib/Target/Mips/MipsOptimizePICCall.cpp
    M llvm/lib/Target/Mips/MipsSEISelLowering.cpp
    M llvm/lib/Target/Mips/MipsSEISelLowering.h
    M llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp
    M llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
    M llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
    M llvm/lib/Target/PowerPC/PPCISelLowering.cpp
    M llvm/lib/Target/PowerPC/PPCISelLowering.h
    M llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyInstPrinter.h
    M llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.h
    M llvm/lib/Target/WebAssembly/Utils/WebAssemblyTypeUtilities.h
    M llvm/lib/Target/X86/GISel/X86CallLowering.cpp
    M llvm/lib/Target/X86/GISel/X86InstructionSelector.cpp
    M llvm/lib/Target/X86/X86AsmPrinter.cpp
    M llvm/lib/Target/X86/X86InterleavedAccess.cpp
    M llvm/unittests/CodeGen/MachineOperandTest.cpp
    M llvm/unittests/CodeGen/ScalableVectorMVTsTest.cpp
    M llvm/utils/TableGen/CodeGenInstruction.h
    M llvm/utils/TableGen/CodeGenTarget.h
    M llvm/utils/TableGen/DAGISelMatcher.h
    M llvm/utils/TableGen/GlobalISelEmitter.cpp
    M llvm/utils/TableGen/GlobalISelMatchTable.h
    M llvm/utils/TableGen/InfoByHwMode.h
    M llvm/utils/TableGen/RegisterInfoEmitter.cpp
    M llvm/utils/gn/secondary/llvm/lib/CodeGen/BUILD.gn
    M llvm/utils/gn/secondary/llvm/utils/TableGen/BUILD.gn
    M llvm/utils/gn/secondary/llvm/utils/TableGen/GlobalISel/BUILD.gn
    M mlir/tools/mlir-tblgen/LLVMIRIntrinsicGen.cpp

  Log Message:
  -----------
  [llvm] Move CodeGenTypes library to its own directory (#79444)

Finally addresses https://reviews.llvm.org/D148769#4311232 :)

No behavior change.


  Commit: 016b7e8bf4df839f4bf84ee615cbe422e75f7868
      https://github.com/llvm/llvm-project/commit/016b7e8bf4df839f4bf84ee615cbe422e75f7868
  Author: Nico Weber <thakis at chromium.org>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    A llvm/utils/gn/secondary/llvm/lib/CodeGenTypes/BUILD.gn

  Log Message:
  -----------
  [gn] port 184ca39529a9


  Commit: 4a91206359e2f2572e14b754a75c0f7f1aab7346
      https://github.com/llvm/llvm-project/commit/4a91206359e2f2572e14b754a75c0f7f1aab7346
  Author: David Spickett <david.spickett at linaro.org>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    A llvm/test/Transforms/LoopVectorize/X86/vplan-native-inner-loop-only.ll
    R llvm/test/Transforms/LoopVectorize/vplan-native-inner-loop-only.ll

  Log Message:
  -----------
  [llvm][LV] Move new test into X86 subfolder

Added in a04f6152914ea21f3068aaba9d8fc21d2e703d3e.

Failing on our Arm only bots:
https://lab.llvm.org/buildbot/#/builders/245/builds/19684


  Commit: b0511419b3fd71fa8f8c3618b7e849aabd2ccf65
      https://github.com/llvm/llvm-project/commit/b0511419b3fd71fa8f8c3618b7e849aabd2ccf65
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/AST/Type.h
    M clang/include/clang/Basic/AttrDocs.td
    M clang/lib/AST/ASTContext.cpp
    M clang/lib/AST/ItaniumMangle.cpp
    M clang/lib/AST/JSONNodeDumper.cpp
    M clang/lib/AST/TextNodeDumper.cpp
    M clang/lib/AST/Type.cpp
    M clang/lib/AST/TypePrinter.cpp
    M clang/lib/CodeGen/Targets/RISCV.cpp
    M clang/lib/Sema/SemaExpr.cpp
    M clang/lib/Sema/SemaType.cpp
    M clang/test/CodeGen/attr-riscv-rvv-vector-bits-bitcast.c
    M clang/test/CodeGen/attr-riscv-rvv-vector-bits-call.c
    M clang/test/CodeGen/attr-riscv-rvv-vector-bits-cast.c
    M clang/test/CodeGen/attr-riscv-rvv-vector-bits-codegen.c
    M clang/test/CodeGen/attr-riscv-rvv-vector-bits-globals.c
    M clang/test/CodeGen/attr-riscv-rvv-vector-bits-types.c
    M clang/test/CodeGenCXX/riscv-mangle-rvv-fixed-vectors.cpp
    M clang/test/Sema/attr-riscv-rvv-vector-bits.c

  Log Message:
  -----------
  [RISCV] Support __riscv_v_fixed_vlen for vbool types. (#76551)

This adopts a similar behavior to AArch64 SVE, where bool vectors are
represented as a vector of chars with 1/8 the number of elements. This
ensures the vector always occupies a power of 2 number of bytes.

A consequence of this is that vbool64_t, vbool32_t, and vool16_t can
only be used with a vector length that guarantees at least 8 bits.


  Commit: a621198a035cdc700f08507879db902f22f8a5e2
      https://github.com/llvm/llvm-project/commit/a621198a035cdc700f08507879db902f22f8a5e2
  Author: michaelrj-google <71531609+michaelrj-google at users.noreply.github.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M libc/config/config.json
    M libc/docs/dev/printf_behavior.rst
    M libc/src/__support/UInt.h
    M libc/src/__support/float_to_string.h
    M libc/test/src/stdio/sprintf_test.cpp
    M utils/bazel/llvm-project-overlay/libc/BUILD.bazel

  Log Message:
  -----------
  [libc] Move printf long double to simple calc (#75414)

The Ryu algorithm is very fast with its table, but that table grows too
large for long doubles. This patch adds a method of calculating the
digits of long doubles using just wide integers and fast modulo
operations. This results in significant performance improvements vs the
previous int calc mode, while taking up a similar amound of peak memory.
It will be slow in some %e/%g cases, but reasonable fast for %f with no
loss of accuracy.


  Commit: 51b25bad5e53d5be07b5162e4cebcb7d49a422e7
      https://github.com/llvm/llvm-project/commit/51b25bad5e53d5be07b5162e4cebcb7d49a422e7
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/AST/Type.h
    M clang/include/clang/Basic/AttrDocs.td
    M clang/lib/AST/ASTContext.cpp
    M clang/lib/AST/ItaniumMangle.cpp
    M clang/lib/AST/JSONNodeDumper.cpp
    M clang/lib/AST/TextNodeDumper.cpp
    M clang/lib/AST/Type.cpp
    M clang/lib/AST/TypePrinter.cpp
    M clang/lib/CodeGen/Targets/RISCV.cpp
    M clang/lib/Sema/SemaExpr.cpp
    M clang/lib/Sema/SemaType.cpp
    M clang/test/CodeGen/attr-riscv-rvv-vector-bits-bitcast.c
    M clang/test/CodeGen/attr-riscv-rvv-vector-bits-call.c
    M clang/test/CodeGen/attr-riscv-rvv-vector-bits-cast.c
    M clang/test/CodeGen/attr-riscv-rvv-vector-bits-codegen.c
    M clang/test/CodeGen/attr-riscv-rvv-vector-bits-globals.c
    M clang/test/CodeGen/attr-riscv-rvv-vector-bits-types.c
    M clang/test/CodeGenCXX/riscv-mangle-rvv-fixed-vectors.cpp
    M clang/test/Sema/attr-riscv-rvv-vector-bits.c

  Log Message:
  -----------
  Revert "[RISCV] Support __riscv_v_fixed_vlen for vbool types. (#76551)"

This reverts commit b0511419b3fd71fa8f8c3618b7e849aabd2ccf65.

Test failure was reported.


  Commit: b9483d30a7d7a0650a0e83c75fcb9ab4932f475a
      https://github.com/llvm/llvm-project/commit/b9483d30a7d7a0650a0e83c75fcb9ab4932f475a
  Author: Douglas Yung <douglas.yung at sony.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/icmp-pow2-mask.ll

  Log Message:
  -----------
  Revert "[X86] Fold not(pcmpeq(and(X,CstPow2),0)) -> pcmpeq(and(X,CstPow2),CstPow2)"

This reverts commit 72f10f7eb536da58cb79e13974895cd97d4e1a5f.

This change was causing a miscompile on an internal test and is being reverted at the author's request until it can be fixed.


  Commit: 7fdb932c4e78706cec3468a1f149e5a54a865d36
      https://github.com/llvm/llvm-project/commit/7fdb932c4e78706cec3468a1f149e5a54a865d36
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

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

  Log Message:
  -----------
  [CodeGen] Add standard traits for LiveInterval::SingleLinkedListIterator (#79473)

For example this will allow LiveInterval::subranges() to be used in
any_of/all_of/none_of.


  Commit: 7f409cd82b322038f08a984a07377758e76b0e4c
      https://github.com/llvm/llvm-project/commit/7f409cd82b322038f08a984a07377758e76b0e4c
  Author: Derek Schuff <dschuff at chromium.org>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M lld/wasm/InputChunks.h
    M lld/wasm/InputElement.h
    M lld/wasm/InputFiles.cpp
    M lld/wasm/WriterUtils.cpp
    M llvm/include/llvm/BinaryFormat/Wasm.h
    M llvm/include/llvm/Object/Wasm.h
    M llvm/lib/MC/WasmObjectWriter.cpp
    M llvm/lib/Object/WasmObjectFile.cpp
    M llvm/lib/ObjectYAML/WasmYAML.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp
    A llvm/test/Object/Inputs/WASM/multi-table.wasm
    A llvm/test/Object/wasm-obj2yaml-tables.test

  Log Message:
  -----------
  [Object][Wasm] Allow parsing of GC types in type and table sections (#79235)

This change allows a WasmObjectFile to be created from a wasm file even 
if it uses typed funcrefs and GC types. It does not significantly change how 
lib/Object models its various internal types (e.g. WasmSignature,
WasmElemSegment), so LLVM does not really "support" or understand such
files, but it is sufficient to parse the type, global and element sections, discarding
types that are not understood. This is useful for low-level binary tools such as
nm and objcopy, which use only limited aspects of the binary (such as function
definitions) or deal with sections as opaque blobs.

This is done by allowing `WasmValType` to have a value of `OTHERREF`
(representing any unmodeled reference type), and adding a field to
`WasmSignature` indicating it's a placeholder for an unmodeled reference 
type (since there is a 1:1 correspondence between WasmSignature objects
and types in the type section).
Then the object file parsers for the type and element sections are expanded
to parse encoded reference types and discard any unmodeled fields.


  Commit: 5aa5a2f1b77d93a9f9ed158172277ee41ac224a9
      https://github.com/llvm/llvm-project/commit/5aa5a2f1b77d93a9f9ed158172277ee41ac224a9
  Author: Philip Reames <preames at rivosinc.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

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

  Log Message:
  -----------
  [RISCV] Disable exact VLEN splitting for bitrotate shuffles (#79468)

If we have a bitrotate shuffle, this is also by definition a vreg
splitable shuffle when exact VLEN is known. However, there's no profit
to be had from splitting the wider bitrotate lowering into individual m1
pieces. We'd rather leave it the higher lmul to reduce code size.

This is a general problem for any linear-in-LMUL shuffle expansions when
the vreg splitting still has to do linear work per piece. On first
reflection it seems like element rotation might have the same
interaction, but in that case, splitting can be done via a set of whole
register moves (which may get folded into the consumer depending) which
at least as good as a pair of slideup/slidedown. I think that bitrotate
is the only shuffle expansion we have that actually needs handled here.


  Commit: 97ace00a564ac9d2424a9885c2117e475260ac1b
      https://github.com/llvm/llvm-project/commit/97ace00a564ac9d2424a9885c2117e475260ac1b
  Author: Augie Fackler <augie at google.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

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

  Log Message:
  -----------
  bazel: fix build past 184ca39529a93e69eb175861d7fff5fc79988e53


  Commit: ccb99f221422b8de5e1ae04d3427f15878f7cd93
      https://github.com/llvm/llvm-project/commit/ccb99f221422b8de5e1ae04d3427f15878f7cd93
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M lld/ELF/Arch/RISCV.cpp

  Log Message:
  -----------
  [ELF] Clean up R_RISCV_RELAX code. NFC


  Commit: 5377fa72ceff28593cdeec16bfa97c31aa145623
      https://github.com/llvm/llvm-project/commit/5377fa72ceff28593cdeec16bfa97c31aa145623
  Author: AdityaK <1894981+hiraditya at users.noreply.github.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M llvm/docs/TestingGuide.rst

  Log Message:
  -----------
  [doc] Add special case for unsupported test (#78858)

That helps disable the test for all the targets


  Commit: 30279dcf5181c6683ca48bfb169ac9f80e1eb897
      https://github.com/llvm/llvm-project/commit/30279dcf5181c6683ca48bfb169ac9f80e1eb897
  Author: David Green <david.green at arm.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    A llvm/test/CodeGen/AArch64/pr79100.ll

  Log Message:
  -----------
  [AArch64] Add a test from #79100, showing extra unnecessary movs. NFC


  Commit: 849951f8759171cb6c74d3ccbcf154506fc1f0ae
      https://github.com/llvm/llvm-project/commit/849951f8759171cb6c74d3ccbcf154506fc1f0ae
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M lld/ELF/Relocations.cpp

  Log Message:
  -----------
  [ELF] Fix terminology: TLS optimizations instead of TLS relaxation. NFC


  Commit: c92ad411f2f94d8521cd18abcb37285f9a390ecb
      https://github.com/llvm/llvm-project/commit/c92ad411f2f94d8521cd18abcb37285f9a390ecb
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/AST/Type.h
    M clang/include/clang/Basic/AttrDocs.td
    M clang/lib/AST/ASTContext.cpp
    M clang/lib/AST/ItaniumMangle.cpp
    M clang/lib/AST/JSONNodeDumper.cpp
    M clang/lib/AST/TextNodeDumper.cpp
    M clang/lib/AST/Type.cpp
    M clang/lib/AST/TypePrinter.cpp
    M clang/lib/CodeGen/Targets/RISCV.cpp
    M clang/lib/Sema/SemaExpr.cpp
    M clang/lib/Sema/SemaType.cpp
    M clang/test/CodeGen/attr-riscv-rvv-vector-bits-bitcast.c
    M clang/test/CodeGen/attr-riscv-rvv-vector-bits-call.c
    M clang/test/CodeGen/attr-riscv-rvv-vector-bits-cast.c
    M clang/test/CodeGen/attr-riscv-rvv-vector-bits-codegen.c
    M clang/test/CodeGen/attr-riscv-rvv-vector-bits-globals.c
    M clang/test/CodeGen/attr-riscv-rvv-vector-bits-types.c
    M clang/test/CodeGenCXX/riscv-mangle-rvv-fixed-vectors.cpp
    M clang/test/Sema/attr-riscv-rvv-vector-bits.c

  Log Message:
  -----------
  Recommit "[RISCV] Support __riscv_v_fixed_vlen for vbool types. (#76551)"

Test updated to expect i8 gep.

Original message:

This adopts a similar behavior to AArch64 SVE, where bool vectors are
represented as a vector of chars with 1/8 the number of elements. This
ensures the vector always occupies a power of 2 number of bytes.

A consequence of this is that vbool64_t, vbool32_t, and vool16_t can
only be used with a vector length that guarantees at least 8 bits.


  Commit: eb678d89933684627ee2c5da47e53751f3fdbaa2
      https://github.com/llvm/llvm-project/commit/eb678d89933684627ee2c5da47e53751f3fdbaa2
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/test/CodeGen/AArch64/vec3-loads-ext-trunc-stores.ll

  Log Message:
  -----------
  [AArch64] Combine store (trunc X to <3 x i8>) to sequence of ST1.b. (#78637)

Improve codegen for (trunc X to <3 x i8>) by converting it to a sequence
of 3 ST1.b, but first converting the truncate operand to either v8i8 or
v16i8, extracting the lanes for the truncate results and storing them.

At the moment, there are almost no cases in which such vector operations
will be generated automatically. The motivating case is non-power-of-2
SLP vectorization: https://github.com/llvm/llvm-project/pull/77790

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


  Commit: 2550ce4d496e54fe929f2242833b73003f36e387
      https://github.com/llvm/llvm-project/commit/2550ce4d496e54fe929f2242833b73003f36e387
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

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

  Log Message:
  -----------
  [libc++] Add base for LLVM 19 release notes (#78990)

This will make it easier for folks who have patches that are not
targeting LLVM 18 -- they can write the release notes in the LLVM 19
release notes immediately.


  Commit: a19629dae70c9f7e7936eba7aa1e0a3a99742288
      https://github.com/llvm/llvm-project/commit/a19629dae70c9f7e7936eba7aa1e0a3a99742288
  Author: Jeremy Morse <jeremy.morse at sony.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M llvm/lib/Bitcode/Reader/BitcodeReader.cpp
    M llvm/lib/IR/LegacyPassManager.cpp
    M llvm/lib/Linker/IRMover.cpp
    M llvm/lib/Transforms/Utils/ValueMapper.cpp
    M llvm/test/LTO/X86/pr38046.ll
    M llvm/test/Linker/debug-info-use-before-def.ll
    M llvm/test/Linker/thinlto_funcimport_debug.ll
    M llvm/test/ThinLTO/X86/debuginfo-cu-import.ll
    M llvm/test/ThinLTO/X86/pr35472.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:
  -----------
  Reapply 215b8f1e252, reverted in c3f7fb1421e

Turns out I was using DbgMarker::getDbgValueRange rather than the helper
utility in Instruction::getDbgValueRange, which checks for null-ness.
Original commit message follows.

[DebugInfo][RemoveDIs] Convert debug-info modes when loading bitcode (#78967)

As part of eliminating debug-intrinsics in LLVM, we'll shortly be
pushing the conversion from "old" dbg.value mode to "new" DPValue mode
out from when the pass manager runs, to when modules are loaded. This
patch adds that conversion process and some (temporary) options to
llvm-lto{,2} to help test it.

Specifically: now whenever we load a bitcode module, consider a flag of
whether to "upgrade" it into the new debug-info mode, and if we're
lazily materializing functions then do that lazily too. Doing this
exposes an error in the IRLinker/materializer handling of DPValues,
where we need to transfer the debug-info format flag correctly, and in
ValueMapper we need to remap the Values that DPValues point at.

I've added some test coverage in the modified tests; these will be
exercised by our llvm-new-debug-iterators buildbot.

This upgrading of debug-info won't be happening for the llvm18 release,
instead we'll turn it on after the branch date, thenbe push the boundary
of where "new" debug-info starts and ends down into the existing
debug-info upgrade path over the course of the next release.


  Commit: 8a0ff194e3f9441d35c87d565e093335371a9578
      https://github.com/llvm/llvm-project/commit/8a0ff194e3f9441d35c87d565e093335371a9578
  Author: michaelrj-google <71531609+michaelrj-google at users.noreply.github.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

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

  Log Message:
  -----------
  [libc] Fix type warning on gcc in float to str (#79482)

Minor cast warning that was missed in previous patch. Fixed with
explicit cast.


  Commit: 89dc7063f6c81d468a61b71b4ca612e22cb87a46
      https://github.com/llvm/llvm-project/commit/89dc7063f6c81d468a61b71b4ca612e22cb87a46
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

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

  Log Message:
  -----------
  [lldb] Fix printf format errors

This patch fixes:

  lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp:1108:39: error:
  format specifies type 'long long' but the argument has type
  'std::time_t' (aka 'long') [-Werror,-Wformat]

  lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp:1116:64: error:
  format specifies type 'long long' but the argument has type
  'std::time_t' (aka 'long') [-Werror,-Wformat]


  Commit: 28a2b85602a583496fa06ebf1e64239a6399d60c
      https://github.com/llvm/llvm-project/commit/28a2b85602a583496fa06ebf1e64239a6399d60c
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp

  Log Message:
  -----------
  [DeadStoreElimination] Use SmallSetVector (NFC) (#79410)

The use of SmallSetVector saves 0.58% of heap allocations during the
compilation of a large preprocessed file, namely X86ISelLowering.cpp,
for the X86 target.  During the experiment, the final size of ToCheck
was 8 or less 88% of the time.


  Commit: 9ddbcee25ea4b436ab478874221553f4a7bc2289
      https://github.com/llvm/llvm-project/commit/9ddbcee25ea4b436ab478874221553f4a7bc2289
  Author: Andrzej Warzyński <andrzej.warzynski at arm.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M mlir/lib/Dialect/Vector/IR/VectorOps.cpp
    M mlir/test/Conversion/VectorToLLVM/vector-to-llvm.mlir
    M mlir/test/Dialect/Vector/invalid.mlir
    M mlir/test/Dialect/Vector/ops.mlir

  Log Message:
  -----------
  [mlir][vector] Extend vector.{insert|extract}_strided_slice (#79052)

Extends `vector.insert_strided_slice` and `vector.insert_strided_slice`
to allow scalable input and output vectors. For scalable sizes, the
corresponding slice size has to match the corresponding dimension in the
output/input vector (insert/extract, respectively).

This is supported:
```mlir
vector.extract_strided_slice %1 {
  offsets = [0, 3, 0],
  sizes = [1, 1, 4],
  strides = [1, 1, 1] } : vector<1x4x[4]xi32> to vector<1x1x[4]xi32>
```

This is not supported:
```mlir
vector.extract_strided_slice %1 {
  offsets = [0, 3, 0],
  sizes = [1, 1, 2],
  strides = [1, 1, 1] } : vector<1x4x[4]xi32> to vector<1x1x[2]xi32>
```


  Commit: 59a6525a4b9d46b931021f727b3235415bc82ea5
      https://github.com/llvm/llvm-project/commit/59a6525a4b9d46b931021f727b3235415bc82ea5
  Author: Alex Langford <alangford at apple.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M lldb/include/lldb/Breakpoint/BreakpointIDList.h
    M lldb/source/Breakpoint/BreakpointIDList.cpp

  Log Message:
  -----------
  [lldb][NFCI] Remove unused method BreakpointIDList::FindBreakpointID(const char *, size_t *) (#79215)


  Commit: 143f71e03ac39b9b3ba3c757454b2c65800b61a3
      https://github.com/llvm/llvm-project/commit/143f71e03ac39b9b3ba3c757454b2c65800b61a3
  Author: Thurston Dang <thurston at google.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M compiler-rt/lib/sanitizer_common/tests/sanitizer_bitvector_test.cpp

  Log Message:
  -----------
  [sanitizer_common] Fix type in format specifier by casting

40dcf24522af91ab22af2e69f28d1f1d2a860f5c had changed the format
specifier to fix the build for their local system. Unfortunately,
that disagrees with some other systems, such as this buildbot:
https://lab.llvm.org/buildbot/#/builders/37/builds/30440

This patch fixes the issue for all systems by casting.


  Commit: b9f73714359a2839b651ee094cad481fb6a636ce
      https://github.com/llvm/llvm-project/commit/b9f73714359a2839b651ee094cad481fb6a636ce
  Author: Mehdi Amini <joker.eph at gmail.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M mlir/lib/Dialect/MLProgram/IR/MLProgramOps.cpp

  Log Message:
  -----------
  Apply clang-tidy fixes for llvm-qualified-auto in MLProgramOps.cpp (NFC)


  Commit: 9cebb2857695ed4b7c79db7f31830eaf4d2f3ba4
      https://github.com/llvm/llvm-project/commit/9cebb2857695ed4b7c79db7f31830eaf4d2f3ba4
  Author: Mehdi Amini <joker.eph at gmail.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M mlir/lib/Dialect/MLProgram/Transforms/PipelineGlobalOps.cpp

  Log Message:
  -----------
  Apply clang-tidy fixes for llvm-qualified-auto in PipelineGlobalOps.cpp (NFC)


  Commit: 4e71335790e93a18c3dccdfda2e38dd152c4d045
      https://github.com/llvm/llvm-project/commit/4e71335790e93a18c3dccdfda2e38dd152c4d045
  Author: Mehdi Amini <joker.eph at gmail.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M mlir/lib/Dialect/MLProgram/Transforms/PipelineGlobalOps.cpp

  Log Message:
  -----------
  Apply clang-tidy fixes for readability-identifier-naming in PipelineGlobalOps.cpp (NFC)


  Commit: 70fdaefe1fdd35c8b5633724a2ddc9ba0a8a5435
      https://github.com/llvm/llvm-project/commit/70fdaefe1fdd35c8b5633724a2ddc9ba0a8a5435
  Author: Mehdi Amini <joker.eph at gmail.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M mlir/lib/Dialect/NVGPU/TransformOps/NVGPUTransformOps.cpp

  Log Message:
  -----------
  Apply clang-tidy fixes for bugprone-macro-parentheses in NVGPUTransformOps.cpp (NFC)


  Commit: a7759fb0f8ce28a53a38a6e0ba6b7105f3d6781a
      https://github.com/llvm/llvm-project/commit/a7759fb0f8ce28a53a38a6e0ba6b7105f3d6781a
  Author: Mehdi Amini <joker.eph at gmail.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M mlir/lib/Dialect/NVGPU/TransformOps/NVGPUTransformOps.cpp

  Log Message:
  -----------
  Apply clang-tidy fixes for performance-unnecessary-value-param in NVGPUTransformOps.cpp (NFC)


  Commit: a315fb1c577a40a40968daa9d346435458d7e06e
      https://github.com/llvm/llvm-project/commit/a315fb1c577a40a40968daa9d346435458d7e06e
  Author: Tacet <advenam.tacet at trailofbits.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M libcxx/include/string
    M libcxx/test/std/strings/basic.string/string.modifiers/string_append/pointer_size.pass.cpp

  Log Message:
  -----------
  [ASan][libc++] Correct (explicit) annotation size (#79292)

A quick examination suggests that the current code in the codebase does
not lead to incorrect annotations. However, the intention is for the
object after the function to be annotated in a way that only its
contents are unpoisoned and the rest is poisoned. This commit makes it
explicit and avoids potential issues in future.

In addition, I have implemented a few tests for a function that helped
me identify the specific argument value.

Notice: there is no known scenario where old code results in incorrect
annotation.


  Commit: 594b92a7b987b839af10bd1035a816f233033826
      https://github.com/llvm/llvm-project/commit/594b92a7b987b839af10bd1035a816f233033826
  Author: Michael Maitland <michaeltmaitland at gmail.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVFeatures.td
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    A llvm/test/CodeGen/RISCV/rvv/dont-sink-splat-operands.ll

  Log Message:
  -----------
  [RISCV] Add Tune to DontSinkSplatOperands (#79199)

A CPU may prefer to not sink splat operands, one reason being that it
could require a S2V transfer buffer to move scalars into buffers.


  Commit: 0b0cce8978eefce4b9b4eb1727f1f210a6b2a2d9
      https://github.com/llvm/llvm-project/commit/0b0cce8978eefce4b9b4eb1727f1f210a6b2a2d9
  Author: felixh5678 <157516335+felixh5678 at users.noreply.github.com>
  Date:   2024-01-25 (Thu, 25 Jan 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/fmaxf128.h
    A libc/src/math/fminf128.h
    M libc/src/math/generic/CMakeLists.txt
    A libc/src/math/generic/fmaxf128.cpp
    A libc/src/math/generic/fminf128.cpp
    M libc/test/src/math/smoke/CMakeLists.txt
    M libc/test/src/math/smoke/FMaxTest.h
    M libc/test/src/math/smoke/FMinTest.h
    A libc/test/src/math/smoke/fmaxf128_test.cpp
    A libc/test/src/math/smoke/fminf128_test.cpp

  Log Message:
  -----------
  [libc] Add fminf128 and fmaxf128 implementations for Linux x86_64. (#79307)

Co-authored-by: Felix <felix at Dirks-MacBook-Pro.local>


  Commit: 720769de9f7531a79013b7e14ca808bdfc8fc258
      https://github.com/llvm/llvm-project/commit/720769de9f7531a79013b7e14ca808bdfc8fc258
  Author: Thurston Dang <thurston at google.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M compiler-rt/lib/tsan/rtl/tsan_platform_linux.cpp

  Log Message:
  -----------
  [tsan] Lazily call 'personality' to minimize sandbox violations (#79334)

My previous patch, "Re-exec TSan with no ASLR if memory layout is incompatible on Linux (#78351)" (0784b1eefa36d4acbb0dacd2d18796e26313b6c5) hoisted the 'personality' call, to share the code between Android and non-Android Linux. Unfortunately, this eager call to 'personality' may trigger sandbox violations on non-Android Linux.

This patch fixes the issue by only calling 'personality' on non-Android Linux if the memory mapping is incompatible. This may still cause a sandbox violation, but only if it was going to abort anyway due to an incompatible memory mapping.

(The behavior on Android Linux is unchanged by this patch or the previous patch.)


  Commit: 982c815aad97686fdb20e4599efbcc064599747b
      https://github.com/llvm/llvm-project/commit/982c815aad97686fdb20e4599efbcc064599747b
  Author: Peiming Liu <36770114+PeimingLiu at users.noreply.github.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M mlir/lib/Dialect/SparseTensor/Transforms/Utils/LoopEmitter.cpp
    M mlir/test/Integration/Dialect/SparseTensor/CPU/reshape_dot.mlir

  Log Message:
  -----------
  [mlir][sparse] fix mismatch between `enter/exitWhileLoop` (#79493)


  Commit: 97b61aeadc58097b80902b600a9a6c95ad36baca
      https://github.com/llvm/llvm-project/commit/97b61aeadc58097b80902b600a9a6c95ad36baca
  Author: Maryam Moghadas <34670902+maryammo at users.noreply.github.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M libcxx/test/libcxx/containers/views/mdspan/layout_stride/assert.conversion.pass.cpp

  Log Message:
  -----------
  [libc++] Update XFAIL for layout_stride/assert.conversion.pass.cpp in debug mode on PowerPC (#79169)

Adding the debug hardening modes into PowerPC target to check the
assertion messages, to fix the PPC rehl bot [1]. This is needed as 
58780b811c23 changed the assertion to trap in production hardening modes.

Properly fixing these assertions is tracked by #79216.

[1]: https://lab.llvm.org/buildbot/#/builders/57/builds/32354

Co-authored-by: Maryam Moghadas <maryammo at ca.ibm.com>


  Commit: 7b4622514d232ce5f7110dd8b20d90e81127c467
      https://github.com/llvm/llvm-project/commit/7b4622514d232ce5f7110dd8b20d90e81127c467
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M libcxx/include/__algorithm/copy_move_common.h
    M libcxx/include/__algorithm/equal.h
    M libcxx/include/__algorithm/equal_range.h
    M libcxx/include/__algorithm/fold.h
    M libcxx/include/__algorithm/in_found_result.h
    M libcxx/include/__algorithm/in_fun_result.h
    M libcxx/include/__algorithm/in_in_out_result.h
    M libcxx/include/__algorithm/in_in_result.h
    M libcxx/include/__algorithm/in_out_out_result.h
    M libcxx/include/__algorithm/includes.h
    M libcxx/include/__algorithm/next_permutation.h
    M libcxx/include/__algorithm/nth_element.h
    M libcxx/include/__algorithm/partial_sort.h
    M libcxx/include/__algorithm/partial_sort_copy.h
    M libcxx/include/__algorithm/partition.h
    M libcxx/include/__algorithm/prev_permutation.h
    M libcxx/include/__algorithm/pstl_any_all_none_of.h
    M libcxx/include/__algorithm/pstl_backends/cpu_backends/transform_reduce.h
    M libcxx/include/__algorithm/pstl_copy.h
    M libcxx/include/__algorithm/pstl_count.h
    M libcxx/include/__algorithm/pstl_equal.h
    M libcxx/include/__algorithm/pstl_fill.h
    M libcxx/include/__algorithm/pstl_find.h
    M libcxx/include/__algorithm/pstl_for_each.h
    M libcxx/include/__algorithm/pstl_generate.h
    M libcxx/include/__algorithm/pstl_is_partitioned.h
    M libcxx/include/__algorithm/pstl_merge.h
    M libcxx/include/__algorithm/pstl_move.h
    M libcxx/include/__algorithm/pstl_replace.h
    M libcxx/include/__algorithm/pstl_rotate_copy.h
    M libcxx/include/__algorithm/pstl_sort.h
    M libcxx/include/__algorithm/pstl_stable_sort.h
    M libcxx/include/__algorithm/pstl_transform.h
    M libcxx/include/__algorithm/ranges_all_of.h
    M libcxx/include/__algorithm/ranges_any_of.h
    M libcxx/include/__algorithm/ranges_binary_search.h
    M libcxx/include/__algorithm/ranges_clamp.h
    M libcxx/include/__algorithm/ranges_contains.h
    M libcxx/include/__algorithm/ranges_copy.h
    M libcxx/include/__algorithm/ranges_copy_backward.h
    M libcxx/include/__algorithm/ranges_copy_if.h
    M libcxx/include/__algorithm/ranges_copy_n.h
    M libcxx/include/__algorithm/ranges_count.h
    M libcxx/include/__algorithm/ranges_count_if.h
    M libcxx/include/__algorithm/ranges_ends_with.h
    M libcxx/include/__algorithm/ranges_equal.h
    M libcxx/include/__algorithm/ranges_equal_range.h
    M libcxx/include/__algorithm/ranges_fill.h
    M libcxx/include/__algorithm/ranges_fill_n.h
    M libcxx/include/__algorithm/ranges_find.h
    M libcxx/include/__algorithm/ranges_find_end.h
    M libcxx/include/__algorithm/ranges_find_first_of.h
    M libcxx/include/__algorithm/ranges_find_if.h
    M libcxx/include/__algorithm/ranges_find_if_not.h
    M libcxx/include/__algorithm/ranges_for_each.h
    M libcxx/include/__algorithm/ranges_for_each_n.h
    M libcxx/include/__algorithm/ranges_generate.h
    M libcxx/include/__algorithm/ranges_generate_n.h
    M libcxx/include/__algorithm/ranges_includes.h
    M libcxx/include/__algorithm/ranges_inplace_merge.h
    M libcxx/include/__algorithm/ranges_is_heap.h
    M libcxx/include/__algorithm/ranges_is_heap_until.h
    M libcxx/include/__algorithm/ranges_is_partitioned.h
    M libcxx/include/__algorithm/ranges_is_permutation.h
    M libcxx/include/__algorithm/ranges_is_sorted.h
    M libcxx/include/__algorithm/ranges_is_sorted_until.h
    M libcxx/include/__algorithm/ranges_iterator_concept.h
    M libcxx/include/__algorithm/ranges_lexicographical_compare.h
    M libcxx/include/__algorithm/ranges_lower_bound.h
    M libcxx/include/__algorithm/ranges_make_heap.h
    M libcxx/include/__algorithm/ranges_max_element.h
    M libcxx/include/__algorithm/ranges_merge.h
    M libcxx/include/__algorithm/ranges_min_element.h
    M libcxx/include/__algorithm/ranges_minmax_element.h
    M libcxx/include/__algorithm/ranges_mismatch.h
    M libcxx/include/__algorithm/ranges_move.h
    M libcxx/include/__algorithm/ranges_move_backward.h
    M libcxx/include/__algorithm/ranges_next_permutation.h
    M libcxx/include/__algorithm/ranges_none_of.h
    M libcxx/include/__algorithm/ranges_nth_element.h
    M libcxx/include/__algorithm/ranges_partial_sort.h
    M libcxx/include/__algorithm/ranges_partial_sort_copy.h
    M libcxx/include/__algorithm/ranges_partition.h
    M libcxx/include/__algorithm/ranges_partition_copy.h
    M libcxx/include/__algorithm/ranges_partition_point.h
    M libcxx/include/__algorithm/ranges_pop_heap.h
    M libcxx/include/__algorithm/ranges_prev_permutation.h
    M libcxx/include/__algorithm/ranges_push_heap.h
    M libcxx/include/__algorithm/ranges_remove.h
    M libcxx/include/__algorithm/ranges_remove_copy.h
    M libcxx/include/__algorithm/ranges_remove_copy_if.h
    M libcxx/include/__algorithm/ranges_remove_if.h
    M libcxx/include/__algorithm/ranges_replace.h
    M libcxx/include/__algorithm/ranges_replace_copy.h
    M libcxx/include/__algorithm/ranges_replace_copy_if.h
    M libcxx/include/__algorithm/ranges_replace_if.h
    M libcxx/include/__algorithm/ranges_reverse_copy.h
    M libcxx/include/__algorithm/ranges_rotate.h
    M libcxx/include/__algorithm/ranges_rotate_copy.h
    M libcxx/include/__algorithm/ranges_sample.h
    M libcxx/include/__algorithm/ranges_search_n.h
    M libcxx/include/__algorithm/ranges_set_difference.h
    M libcxx/include/__algorithm/ranges_set_intersection.h
    M libcxx/include/__algorithm/ranges_set_symmetric_difference.h
    M libcxx/include/__algorithm/ranges_set_union.h
    M libcxx/include/__algorithm/ranges_shuffle.h
    M libcxx/include/__algorithm/ranges_sort.h
    M libcxx/include/__algorithm/ranges_sort_heap.h
    M libcxx/include/__algorithm/ranges_stable_partition.h
    M libcxx/include/__algorithm/ranges_stable_sort.h
    M libcxx/include/__algorithm/ranges_starts_with.h
    M libcxx/include/__algorithm/ranges_swap_ranges.h
    M libcxx/include/__algorithm/ranges_transform.h
    M libcxx/include/__algorithm/ranges_unique.h
    M libcxx/include/__algorithm/ranges_unique_copy.h
    M libcxx/include/__algorithm/remove.h
    M libcxx/include/__algorithm/remove_if.h
    M libcxx/include/__algorithm/reverse.h
    M libcxx/include/__algorithm/rotate.h
    M libcxx/include/__algorithm/set_difference.h
    M libcxx/include/__algorithm/set_intersection.h
    M libcxx/include/__algorithm/set_symmetric_difference.h
    M libcxx/include/__algorithm/set_union.h
    M libcxx/include/__algorithm/shift_left.h
    M libcxx/include/__algorithm/shift_right.h
    M libcxx/include/__algorithm/sort.h
    M libcxx/include/__algorithm/sort_heap.h
    M libcxx/include/__algorithm/stable_partition.h
    M libcxx/include/__algorithm/stable_sort.h
    M libcxx/include/__algorithm/swap_ranges.h
    M libcxx/include/__algorithm/unique.h
    M libcxx/include/__algorithm/unique_copy.h
    M libcxx/include/__algorithm/unwrap_iter.h
    M libcxx/include/__algorithm/unwrap_range.h
    M libcxx/include/__config
    M libcxx/include/__filesystem/directory_iterator.h
    M libcxx/include/__filesystem/path.h
    M libcxx/include/__filesystem/recursive_directory_iterator.h
    M libcxx/include/__format/format_arg.h
    M libcxx/include/__format/format_context.h
    M libcxx/include/__format/format_functions.h
    M libcxx/include/__format/formatter_output.h
    M libcxx/include/__format/write_escaped.h
    M libcxx/include/__functional/function.h
    M libcxx/include/__iterator/cpp17_iterator_concepts.h
    M libcxx/include/__iterator/iterator_with_data.h
    M libcxx/include/__memory/ranges_uninitialized_algorithms.h
    M libcxx/include/__memory/raw_storage_iterator.h
    M libcxx/include/__memory/shared_ptr.h
    M libcxx/include/__memory/uninitialized_algorithms.h
    M libcxx/include/__mutex/once_flag.h
    M libcxx/include/__numeric/pstl_reduce.h
    M libcxx/include/__numeric/pstl_transform_reduce.h
    M libcxx/include/__numeric/reduce.h
    M libcxx/include/__numeric/saturation_arithmetic.h
    M libcxx/include/__numeric/transform_reduce.h
    M libcxx/include/__ranges/counted.h
    M libcxx/include/__ranges/drop_while_view.h
    M libcxx/include/__ranges/elements_view.h
    M libcxx/include/__ranges/filter_view.h
    M libcxx/include/__ranges/iota_view.h
    M libcxx/include/__ranges/join_view.h
    M libcxx/include/__ranges/lazy_split_view.h
    M libcxx/include/__ranges/repeat_view.h
    M libcxx/include/__ranges/reverse_view.h
    M libcxx/include/__ranges/single_view.h
    M libcxx/include/__ranges/split_view.h
    M libcxx/include/__ranges/take_while_view.h
    M libcxx/include/__ranges/transform_view.h
    M libcxx/include/__thread/jthread.h
    M libcxx/include/__thread/thread.h
    M libcxx/include/array
    M libcxx/include/condition_variable
    M libcxx/include/experimental/iterator
    M libcxx/include/future
    M libcxx/include/ios
    M libcxx/include/map
    M libcxx/include/ostream
    M libcxx/include/queue
    M libcxx/include/set
    M libcxx/include/stack
    M libcxx/include/strstream
    M libcxx/include/unordered_map
    M libcxx/include/unordered_set
    M libcxx/test/libcxx/system_reserved_names.gen.py

  Log Message:
  -----------
  [libc++] Fix missing and incorrect push/pop macros (#79204)

We recently noticed that the unwrap_iter.h file was pushing macros, but
it was pushing them again instead of popping them at the end of the
file. This led to libc++ basically swallowing any custom definition of
these macros in user code:

    #define min HELLO
    #include <algorithm>
    // min is not HELLO anymore, it's not defined

While investigating this issue, I noticed that our push/pop pragmas were
actually entirely wrong too. Indeed, instead of pushing macros like
`move`, we'd push `move(int, int)` in the pragma, which is not a valid
macro name. As a result, we would not actually push macros like `move`
-- instead we'd simply undefine them. This led to the following code not
working:

    #define move HELLO
    #include <algorithm>
    // move is not HELLO anymore

Fixing the pragma push/pop incantations led to a cascade of issues
because we use identifiers like `move` in a large number of places, and
all of these headers would now need to do the push/pop dance.

This patch fixes all these issues. First, it adds a check that we don't
swallow important names like min, max, move or refresh as explained
above. This is done by augmenting the existing
system_reserved_names.gen.py test to also check that the macros are what
we expect after including each header.

Second, it fixes the push/pop pragmas to work properly and adds missing
pragmas to all the files I could detect a failure in via the newly added
test.

rdar://121365472


  Commit: 313d33e33c7d379beb96cbf773ec3b98d1d2c6ed
      https://github.com/llvm/llvm-project/commit/313d33e33c7d379beb96cbf773ec3b98d1d2c6ed
  Author: Rahman Lavaee <rahmanl at google.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M llvm/tools/llvm-objdump/llvm-objdump.cpp

  Log Message:
  -----------
  [llvm-objdump,SHT_LLVM_BB_ADDR_MAP,NFC] Use auto && instead of const auto & to allow moving from BBAddrMap objects. (#79456)

std::move on `const auto &` references is essentially a noop. Changing
to `auto &&` to actually allow moving.


  Commit: 92ae2ca12be58dd581084f6d952c2158b6fd42aa
      https://github.com/llvm/llvm-project/commit/92ae2ca12be58dd581084f6d952c2158b6fd42aa
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

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

  Log Message:
  -----------
  [SLP][NFC]Improve BottomTopTop reordering of orders for multi-iterations
attempts, NFC.

If several iterations of reodering of orders is required, need to use
different algorithm.


  Commit: e99edf6bcb20169e153110426f840a2dfeeec66d
      https://github.com/llvm/llvm-project/commit/e99edf6bcb20169e153110426f840a2dfeeec66d
  Author: Tom Stellard <tstellar at redhat.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M .github/workflows/issue-release-workflow.yml
    M llvm/docs/GitHub.rst
    M llvm/utils/git/github-automation.py

  Log Message:
  -----------
  [workflows] Drop the intermediate /branch comment for release workflow (#79481)

We used to support a /branch comment to specify a branch with commits to
backport to the release branch. However, now that we can use pull
requests this is not needed.

This also simplifies the process, because now the cherry-pick job can
create the pull request directly instead of having it split across two
separate jobs.


  Commit: d5e69147b9d261bd53b4dd027f17131677be8613
      https://github.com/llvm/llvm-project/commit/d5e69147b9d261bd53b4dd027f17131677be8613
  Author: Tom Stellard <tstellar at redhat.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M .github/workflows/version-check.py

  Log Message:
  -----------
  [workflows] Fix version-check.yml to work with the new minor release bump


  Commit: 3b762891826192ded07286852d326f9c9060f52e
      https://github.com/llvm/llvm-project/commit/3b762891826192ded07286852d326f9c9060f52e
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M .ci/generate-buildkite-pipeline-premerge

  Log Message:
  -----------
  [ci] Fix the base branch we use to determine changes (#79503)

We should diff against the base branch, not always against `main`. This
allows the BuildKite pre-commit CI to work properly when we target other
branches, such as `release/18.x`.


  Commit: d88e3658cebbfa1533619de514495a67c81df7c0
      https://github.com/llvm/llvm-project/commit/d88e3658cebbfa1533619de514495a67c81df7c0
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M llvm/include/llvm/Transforms/Utils/ScalarEvolutionExpander.h
    M llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp

  Log Message:
  -----------
  [SCEVExp] Move logic to replace congruent IV increments to helper (NFC).

Move logic to replace congruent IV increments to helper function, to
reduce the indentation by using early returns. This is in preparation
for a follow-up patch.


  Commit: 1117fdd7c16873eb389e988c6a39ad922bae0fd0
      https://github.com/llvm/llvm-project/commit/1117fdd7c16873eb389e988c6a39ad922bae0fd0
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M lld/ELF/Arch/RISCV.cpp
    M lld/ELF/Relocations.cpp
    A lld/test/ELF/riscv-tlsdesc-gd-mixed.s
    A lld/test/ELF/riscv-tlsdesc-relax.s
    A lld/test/ELF/riscv-tlsdesc.s

  Log Message:
  -----------
  [ELF] Implement R_RISCV_TLSDESC for RISC-V

Support
R_RISCV_TLSDESC_HI20/R_RISCV_TLSDESC_LOAD_LO12/R_RISCV_TLSDESC_ADD_LO12/R_RISCV_TLSDESC_CALL.
LOAD_LO12/ADD_LO12/CALL relocations reference a label at the HI20
location, which requires special handling. We save the value of HI20 to
be reused. Two interleaved TLSDESC code sequences, which compilers do
not generate, are unsupported.

For -no-pie/-pie links, TLSDESC to initial-exec or local-exec
optimizations are eligible. Implement the relevant hooks
(R_RELAX_TLS_GD_TO_LE, R_RELAX_TLS_GD_TO_IE): the first two instructions
are converted to NOP while the latter two are converted to a GOT load or
a lui+addi.

The first two instructions, which would be converted to NOP, are removed
instead in the presence of relaxation. Relaxation is eligible as long as
the R_RISCV_TLSDESC_HI20 relocation has a pairing R_RISCV_RELAX,
regardless of whether the following instructions have a R_RISCV_RELAX.
In addition, for the TLSDESC to LE optimization (`lui a0,<hi20>; addi a0,a0,<lo12>`),
`lui` can be removed (i.e. use the short form) if hi20 is 0.

```
// TLSDESC to LE/IE optimization
.Ltlsdesc_hi2:
  auipc a4, %tlsdesc_hi(c)                      # if relax: remove; otherwise, NOP
  load  a5, %tlsdesc_load_lo(.Ltlsdesc_hi2)(a4) # if relax: remove; otherwise, NOP
  addi  a0, a4, %tlsdesc_add_lo(.Ltlsdesc_hi2)  # if LE && !hi20 {if relax: remove; otherwise, NOP}
  jalr  t0, 0(a5), %tlsdesc_call(.Ltlsdesc_hi2)
  add   a0, a0, tp
```

The implementation carefully ensures that an instruction unrelated to
the current TLSDESC code sequence, if immediately follows a removable
instruction (HI20 or LOAD_LO12 OR (LE-specific) ADD_LO12), is not
converted to NOP.

* `riscv64-tlsdesc.s` is inspired by `i386-tlsdesc-gd.s` (https://reviews.llvm.org/D112582).
* `riscv64-tlsdesc-relax.s` tests linker relaxation.
* `riscv-tlsdesc-gd-mixed.s` is inspired by `x86-64-tlsdesc-gd-mixed.s` (https://reviews.llvm.org/D116900).

Link: https://github.com/riscv-non-isa/riscv-elf-psabi-doc/pull/373

Reviewed By: ilovepi

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


  Commit: 5aad7894812a53b69e989a61a567f5617df4a057
      https://github.com/llvm/llvm-project/commit/5aad7894812a53b69e989a61a567f5617df4a057
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M .ci/generate-buildkite-pipeline-premerge

  Log Message:
  -----------
  [ci] Diff against origin/BASE-BRANCH

Otherwise, when the base branch is not something that the CI runner
has checked out, that reference to e.g. release/18.x is ambiguous.


  Commit: c2e5f4d3a14ae5b5c1c7e335a6336774f456e656
      https://github.com/llvm/llvm-project/commit/c2e5f4d3a14ae5b5c1c7e335a6336774f456e656
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M flang/lib/Evaluate/intrinsics.cpp
    M flang/test/Semantics/c_f_pointer.f90

  Log Message:
  -----------
  [flang] Add warnings for non-standard C_F_POINTER() usage (#78332)

There's a few restrictions in the standard on the Fortran pointer
argument (FPTR=) to the intrinsic subroutine C_F_POINTER() that almost
no compilers enforce. Enforce them here with warnings.


  Commit: 82d335e70f91c03d01a5acfbd0c905abc1cc5b79
      https://github.com/llvm/llvm-project/commit/82d335e70f91c03d01a5acfbd0c905abc1cc5b79
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M clang/lib/Driver/ToolChains/Cuda.cpp
    M clang/lib/Driver/ToolChains/Cuda.h
    A clang/test/Driver/Inputs/nvptx-arch/nvptx_arch_sm_89_sm_80
    M clang/test/Driver/nvptx-cuda-system-arch.c

  Log Message:
  -----------
  [NVPTX] Add support for -march=native in standalone NVPTX (#79373)

Summary:
We support `--target=nvptx64-nvidia-cuda` as a way to target the NVPTX
architecture from standard CPU. This patch simply uses the existing
support for handling `--offload-arch=native` to also apply to the
standalone toolchain.


  Commit: 78ef032862bbe2891cfdfdd7b5b893512573530c
      https://github.com/llvm/llvm-project/commit/78ef032862bbe2891cfdfdd7b5b893512573530c
  Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M flang/lib/Lower/OpenACC.cpp
    M flang/test/Lower/OpenACC/acc-update.f90
    M mlir/include/mlir/Dialect/OpenACC/OpenACCOps.td
    M mlir/lib/Dialect/OpenACC/IR/OpenACC.cpp
    M mlir/test/Dialect/OpenACC/invalid.mlir
    M mlir/test/Dialect/OpenACC/ops.mlir

  Log Message:
  -----------
  [mlir][flang][openacc] Add device_type support for update op (#78764)

Add support for device_type information on the acc.update operation and
update lowering from Flang.


  Commit: 887783e0caab3983f3e32077a7eb137831e1e2e7
      https://github.com/llvm/llvm-project/commit/887783e0caab3983f3e32077a7eb137831e1e2e7
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M flang/runtime/assign.cpp

  Log Message:
  -----------
  [flang][runtime] Invert component/element loops in assignment (#78341)

The general implementation of intrinsic assignment of derived types in
the runtime support library has a doubly-nested loop: an outer loop that
traverses the components and inner loops than traverse the array
elements. It's done this way to amortize the per-component overhead.
However, this turns out to be wrong when the program cares about the
order in which defined assignment subroutines are called; the Fortran
standard allows less latitude here than we need to invert the ordering
in this way when any component is itself an array. So invert the two
loops: traverse the array elements, and for each element, traverse its
components.


  Commit: e9309b27d7bd50ee98fd7813214ac37716bd6978
      https://github.com/llvm/llvm-project/commit/e9309b27d7bd50ee98fd7813214ac37716bd6978
  Author: Amir Ayupov <aaupov at fb.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M bolt/lib/Passes/BinaryPasses.cpp
    M bolt/test/X86/reader-stale-yaml.test

  Log Message:
  -----------
  [BOLT] Report input staleness (#79496)

It's beneficial to have uniform reporting in both `infer-stale-profile`
on and off cases, primarily for logging purposes.

Without this change, BOLT would report "input" staleness in
`infer-stale-profile=0` case (without matching), and "output" staleness
in `infer-stale-profile=1` case (after matching).

This change makes BOLT report "input" staleness in both cases. "Output"
staleness information is printed separately with "BOLT-INFO: inferred
profile..."


  Commit: 3bca8506ab65c66e32695ba50571c4384be8e4d1
      https://github.com/llvm/llvm-project/commit/3bca8506ab65c66e32695ba50571c4384be8e4d1
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M flang/lib/Evaluate/intrinsics.cpp
    M flang/lib/Semantics/check-call.cpp
    A flang/test/Semantics/present01.f90

  Log Message:
  -----------
  [flang] Correct checking of PRESENT() (#78364)

The argument to the PRESENT() intrinsic function must be the name of a a
whole OPTIONAL dummy argument.

Fixes llvm-test-suite/Fortran/gfortran/regression/present_1.f90.


  Commit: 033b491c756f58bceaa26f1c96ec645c8d3e5e45
      https://github.com/llvm/llvm-project/commit/033b491c756f58bceaa26f1c96ec645c8d3e5e45
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M flang/runtime/edit-output.cpp
    M flang/runtime/format.h
    M flang/unittests/Runtime/NumericalFormatTest.cpp

  Log Message:
  -----------
  [flang][runtime] Catch error on Ew.0 output editing (#78522)

An Ew.0(Ee) or Ew.0(Ee) output edit descriptor with a scale factor of
zero is an error condition, unless the output edit descriptor was
originally Gw.0(Ee), list-directed, or just E0/D0 with no .d part.

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


  Commit: a3bbe627d2d8d3a64c60dbec57c885d5303f4398
      https://github.com/llvm/llvm-project/commit/a3bbe627d2d8d3a64c60dbec57c885d5303f4398
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M flang/include/flang/Runtime/descriptor.h
    M flang/include/flang/Runtime/magic-numbers.h
    M flang/lib/Lower/Allocatable.cpp
    M flang/runtime/descriptor.cpp
    M flang/runtime/pointer.cpp
    M flang/runtime/stat.cpp
    M flang/runtime/stat.h
    M flang/test/Lower/Intrinsics/c_loc.f90

  Log Message:
  -----------
  [flang][runtime] Validate pointer DEALLOCATE (#78612)

The standard requires a compiler to diagnose an incorrect use of a
pointer in a DEALLOCATE statement. The pointer must be associated with
an entire object that was allocated as a pointer (not allocatable) by an
ALLOCATE statement.

Implement by appending a validation footer to pointer allocations. This
is an extra allocated word that encodes the base address of the
allocation. If it is not found after the data payload when the pointer
is deallocated, signal an error. There is a chance of a false positive
result, but that should be vanishingly unlikely.

This change requires all pointer allocations (not allocatables) to take
place in the runtime in PointerAllocate(), which might be slower in
cases that could otherwise be handled with a native memory allocation
operation. I believe that memory allocation of pointers is less common
than with allocatables, which are not affected. If this turns out to
become a performance problem, we can inline the creation and
initialization of the footer word.

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


  Commit: 7f542662ce3edc9fbc43e1f04698ebbb47516d48
      https://github.com/llvm/llvm-project/commit/7f542662ce3edc9fbc43e1f04698ebbb47516d48
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M flang/lib/Semantics/mod-file.cpp
    A flang/test/Semantics/modfile62.f90

  Log Message:
  -----------
  [flang] Fix module file generation when generic shadows derived type (#78618)

Fortran allows the name of a generic interface to be the same as the
name of a derived type or specific procedure. When this happens, it
causes the code in module file generation to miss the symbol of a
derived type when scanning for symbols in initialization expressions
that need to be imported. Fix.


  Commit: 7d272722fb971d9a8788cf1d75f26b314bca928a
      https://github.com/llvm/llvm-project/commit/7d272722fb971d9a8788cf1d75f26b314bca928a
  Author: Alexander Yermolovich <43973793+ayermolo at users.noreply.github.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M bolt/lib/Core/BinaryContext.cpp
    M bolt/lib/Rewrite/DWARFRewriter.cpp
    A bolt/test/X86/dwarf4-override-comp-dir.test
    A bolt/test/X86/dwarf5-override-comp-dir.test

  Log Message:
  -----------
  [BOLT][DWARF] Add option to specify DW_AT_comp_dir (#79395)

Added an --comp-dir-override option that overrides DW_AT_comp_dir in the
unit die. This allows for llvm-bolt to be invoked from any category and
still find .dwo files.


  Commit: b788d6283d160f0fcff9ca9109ea97960185dc71
      https://github.com/llvm/llvm-project/commit/b788d6283d160f0fcff9ca9109ea97960185dc71
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M flang/lib/Semantics/check-declarations.cpp
    A flang/test/Semantics/declarations08.f90

  Log Message:
  -----------
  [flang] More Cray pointee checks (#78624)

Cray pointees may not appear in COMMON blocks or EQUIVALENCE groups.

Fixes llvm-test-suite/Fortran/gfortran/regression/cray_pointers_4.f90.


  Commit: 15e4a3c1fb12f09d4f87b9e8bf68cb31de3d0944
      https://github.com/llvm/llvm-project/commit/15e4a3c1fb12f09d4f87b9e8bf68cb31de3d0944
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M flang/runtime/namelist.cpp

  Log Message:
  -----------
  [flang][runtime] Fix namelist substring checking (#78649)

An || operator in namelist substring bounds checking really needs to be
an && operator so that the substring is viewed as correct only when both
its bounds are valid.

Fixes llvm-test-suite/Fortran/gfortran/regression/namelist_40.f90.


  Commit: e8a5010c0338357c08c740de121b660aa933d5f4
      https://github.com/llvm/llvm-project/commit/e8a5010c0338357c08c740de121b660aa933d5f4
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M flang/runtime/numeric.cpp

  Log Message:
  -----------
  [flang][runtime] Use std::fmod for most MOD/MODULO (#78745)

The new accurate algorithm for real MOD and MODULO in the runtime is not
as fast as std::fmod(), which is also accurate. So use std::fmod() for
those floating-point types that it supports.

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


  Commit: 19b65a9c0284c12556512e8136352a7e1eb8dfa3
      https://github.com/llvm/llvm-project/commit/19b65a9c0284c12556512e8136352a7e1eb8dfa3
  Author: Jeremy Morse <jeremy.morse at sony.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M llvm/include/llvm/IR/DebugProgramInstruction.h
    M llvm/lib/IR/DebugProgramInstruction.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineInternal.h
    M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
    A llvm/test/DebugInfo/instcombine-sink-latest-assignment.ll

  Log Message:
  -----------
  [DebugInfo][RemoveDIs] Add a DPValue implementation for instcombine sinking (#77930)

In instcombine, when we sink an instruction into a successor block, we try
to clone and salvage all the variable assignments that use that Value. This
is a behaviour that's (IMO) flawed, but there are important use cases where
we want to avoid regressions, thus we're implementing this for the
non-instruction debug-info representation.

This patch refactors the dbg.value sinking code into it's own function, and
installs a parallel implementation for DPValues, the non-instruction
debug-info container. This is mostly identical to the dbg.value
implementation, except that we don't have an easy-to-access ordering
between DPValues, and have to jump through extra hoops to establish one in
the (rare) cases where that ordering is required.

The test added represents a common use-case in LLVM where these behaviours
are important: a loop has been completely optimised away, leaving several
dbg.values in a row referring to an instruction that's going to sink. The
dbg.values should sink in both dbg.value and RemoveDIs mode, and
additionally only the last assignment should sink.


  Commit: 5bd87e65d6a3f985471058ee071320c1def718c4
      https://github.com/llvm/llvm-project/commit/5bd87e65d6a3f985471058ee071320c1def718c4
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

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

  Log Message:
  -----------
  [flang] Silence spurious errors about SAVE (#78765)

When an attribute specification statement follows a declaration that
applies the SAVE attribute to a symbol, name resolution can produce a
spurious error message about redundant SAVEs.

Fixes llvm-test-suite/Fortran/gfortran/regression/proc_ptr_9.f90.


  Commit: df7d2b2f9085b4ae749ce5a221417b53185aa253
      https://github.com/llvm/llvm-project/commit/df7d2b2f9085b4ae749ce5a221417b53185aa253
  Author: Amir Ayupov <aaupov at fb.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M bolt/docs/BAT.md
    M bolt/include/bolt/Profile/BoltAddressTranslation.h
    M bolt/lib/Profile/BoltAddressTranslation.cpp
    M bolt/test/X86/bolt-address-translation.test

  Log Message:
  -----------
  [BOLT] Deduplicate equal offsets in BAT (#76905)

Encode BRANCHENTRY bits as bitmask for deduplicated entries.

Reduces BAT section size:
- large binary: to 11834216 bytes (0.31x original),
- medium binary: to 1565584 bytes (0.26x original),
- small binary: to 336 bytes (0.23x original).

Test Plan: Updated bolt/test/X86/bolt-address-translation.test


  Commit: 6ac392b9cbeba2bc098ae3f48b8c6f7db218905b
      https://github.com/llvm/llvm-project/commit/6ac392b9cbeba2bc098ae3f48b8c6f7db218905b
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M flang/lib/Semantics/definable.cpp
    M flang/test/Semantics/definable01.f90

  Log Message:
  -----------
  [flang] Get base objects right in definability checker (#78854)

The utility function GetRelevantObject() seems to be just wrong for
definability checks for the "base object" of a designator, and that's
all for which it is (now?) used. This leads to some false error messages
in Whizard when data-refs with multiple pointer components are defined.
Simplify, and add more test cases.


  Commit: 4299d9b1af45843fd3230dc429fcf9cc19460303
      https://github.com/llvm/llvm-project/commit/4299d9b1af45843fd3230dc429fcf9cc19460303
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M flang/lib/Parser/prescan.cpp
    M flang/lib/Parser/prescan.h
    A flang/test/Preprocessing/pp133.F90

  Log Message:
  -----------
  [flang] Accomodate historic preprocessing usage (#78868)

Some Fortran codes use line continuation as a form of token pasting; see
https://github.com/llvm/llvm-project/issues/78797. This works in
compilers that run a C-like preprocessor and then apply line
continuation to its output; f18 implements line continuation during
tokenization and preprocessing, but can still handle this case.

In the rare case when an identifier is split across two or more
continuation lines, this patch allows its parts to be distinct
preprocessing tokens for the purpose of macro replacemnt. They (or their
replacement texts) can be effectively rejoined later as a single
identifier when the cooked character stream is tokenized in parsing.

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


  Commit: 776e25af6d927bc6be026070181c834069fbf742
      https://github.com/llvm/llvm-project/commit/776e25af6d927bc6be026070181c834069fbf742
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M flang/lib/Parser/prescan.cpp

  Log Message:
  -----------
  [flang] Inhibit case of false tokenization of Hollerith (#79029)

https://github.com/llvm/llvm-project/issues/78927 contains a case of
fixed-form source in which a Hollerith literal is mistakenly tokenized,
leading to grief later due to apparently unbalanced parentheses.

The source looks like "REAL*8 R8HEAP(SCRSIZE)" and the Hollerith literal
is misrecognized as such because it follows "8R". In order to properly
tokenize Hollerith literals in old comma-free FORMAT statements like "1
FORMAT(3I5HFLANG)", the tokenizer in the prescanner treats a letter
after an integer token ("3I") as a special case. The fix is to do this
only when the characters involved are nested in parentheses and
Hollerith is a possibility.

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


  Commit: b1938b716a3ef75a518bdebec12c240415bf0fef
      https://github.com/llvm/llvm-project/commit/b1938b716a3ef75a518bdebec12c240415bf0fef
  Author: Michael Kruse <llvm-project at meinersbur.de>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M openmp/libomptarget/CMakeLists.txt

  Log Message:
  -----------
  [OpenMP] Disable LTO build of libomptarget and plugins by default. (#79387)

CheckIPOSupported is used to test for working LTO since #74520. However, before CMake 3.24 this will test the default linker and ignore options such as LLVM_ENABLE_LLD. As a result, CMake would test whether LTO works with the default linker but builds with another one. In a typical scenario, libomptarget is compiled with the in-tree Clang, but linked with ld.gold, which requires the LLVMgold plugin, when it actually would work with the lld linker (or also fail because the system lld is too old to understand opaque pointers). Using gcc as the compiler would pass the test, but fail when linking with lld since does not understand gcc's LTO format.

Disable LTO by default for now since automatic detection causes too many problems. It causes the openmp-offload-cuda-project buildbot (https://lab.llvm.org/staging/#/builders/151) to fail and LLVM_ENABLE_RUNTIMES=openmp builds will have it implicitly disabled in the vast majority of system configurations anyway.


  Commit: d0f44ed062d911953de157ee4d7db91003b9bd52
      https://github.com/llvm/llvm-project/commit/d0f44ed062d911953de157ee4d7db91003b9bd52
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M flang/lib/Evaluate/fold-implementation.h
    M flang/lib/Evaluate/intrinsics.cpp
    A flang/test/Evaluate/bug78932.f90

  Log Message:
  -----------
  [flang] Don't create impossible conversions in intrinsic extension (#79042)

We support specific intrinsic calls like `AMAX0(1.0,2)` that have
heterogeneous argument types as an optional extension in cases where the
specific intrinsic has a related generic intrinsic function capable of
handling the argument types. This feature can't be allowed to apply to
calls where the result of the related generic intrinsic function is not
convertible to the type of the specific intrinsic, as in `AMAX0('a',
'b')`.

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


  Commit: 320a5197a6d3a0929d0ade3b621769eaf120b203
      https://github.com/llvm/llvm-project/commit/320a5197a6d3a0929d0ade3b621769eaf120b203
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M flang/lib/Semantics/check-io.cpp

  Log Message:
  -----------
  [flang] Accept OPEN(...,CONVERT="SWAP") in semantics (#79050)

The runtime implements CONVERT="SWAP", but semantics doesn't like it.
Add it to the relevant table.

Fixes llvm-test-suite/Fortran/gfortran/regression/record_marker_1.f90,
.../unf_io_convert_1.f90, .../unf_io_convert_2.f90, and
.../unf_io_convert_3.f90.


  Commit: ba45ad160e3f329aeb02c19eaf18af27fa423d85
      https://github.com/llvm/llvm-project/commit/ba45ad160e3f329aeb02c19eaf18af27fa423d85
  Author: Jason Molenda <jmolenda at apple.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/chrono/TestDataFormatterLibcxxChrono.py

  Log Message:
  -----------
  Temporarily disable two libcxx chrono formatter tests

On macOS, the formatter is printing signed values as
unsigned, it seems, and the tests are expecting correctly
signed values.  These tests were added in
https://github.com/llvm/llvm-project/pull/78609


  Commit: 71e01d9fd757b7330958f9ee4ef4b797b7d17a7e
      https://github.com/llvm/llvm-project/commit/71e01d9fd757b7330958f9ee4ef4b797b7d17a7e
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M flang/lib/Evaluate/intrinsics.cpp
    M flang/test/Evaluate/folding02.f90

  Log Message:
  -----------
  [flang] Support KNINT and KIDNNT legacy intrinsic functions (#79190)

These specific intrinsic functions are legacy names that map to the
standard generic NINT(..., KIND=8).


  Commit: 378c4d4a93deeba96d8f9cd5d010a2d377d73998
      https://github.com/llvm/llvm-project/commit/378c4d4a93deeba96d8f9cd5d010a2d377d73998
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    R flang/test/Preprocessing/pp133.F90
    A flang/test/Preprocessing/pp134.F90

  Log Message:
  -----------
  [flang] Rename new test to avoid a conflict on case-insensitive files… (#79531)

…ystems

flang/test/Preprocessing/pp133.F90 -> pp134.F90 to avoid pp133.f90.


  Commit: 2b7a928dd97476aac86fbae25a7a8e26b4ced738
      https://github.com/llvm/llvm-project/commit/2b7a928dd97476aac86fbae25a7a8e26b4ced738
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M flang/include/flang/Semantics/symbol.h
    M flang/include/flang/Semantics/tools.h
    M flang/lib/Semantics/expression.cpp
    M flang/lib/Semantics/resolve-names.cpp
    M flang/lib/Semantics/symbol.cpp
    M flang/lib/Semantics/tools.cpp
    M flang/test/Semantics/resolve17.f90
    M flang/test/Semantics/resolve18.f90
    M flang/test/Semantics/symbol27.f90

  Log Message:
  -----------
  [flang] Improve USE merging of homonymous types, interfaces, and proc… (#79364)

…edures

Fortran allows a generic interface to have the same name as a derived
type in the same scope. It also allows a generic interface to have the
same name as one of its specific procedures.

When two modules define the same name, possibly more than once each,
things get exciting. The standard is not clear, and other compilers do
variously different things. We are currently emitting some errors
prematurely for some usage in pfUnit due to how it combines two versions
of a package together via USE association.

This patch handles combinations of derived types and generic interfaces
and their specific procedures in a more principled way. Errors due to
ambiguity are deferred to actual usage of derived types and specific
procedures -- and when they're not used, the program is unambiguous and
no error issues.


  Commit: 32334b91922b2c48665d04369b7858324820baa5
      https://github.com/llvm/llvm-project/commit/32334b91922b2c48665d04369b7858324820baa5
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M flang/runtime/format-implementation.h

  Log Message:
  -----------
  [flang][runtime] Fix integer overflow check for FORMATs (#79471)

The code that parses repeat counts, field widths, &c. from FORMAT
strings has an incorrect overflow check, so the maximum integer value is
not accepted. Fix.

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


  Commit: edb720666fd8dba3a96b71314e2cb854e966c8db
      https://github.com/llvm/llvm-project/commit/edb720666fd8dba3a96b71314e2cb854e966c8db
  Author: michaelrj-google <71531609+michaelrj-google at users.noreply.github.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M libc/config/linux/aarch64/entrypoints.txt
    M libc/config/linux/aarch64/headers.txt
    M libc/config/linux/api.td
    M libc/config/linux/arm/entrypoints.txt
    M libc/config/linux/arm/headers.txt
    M libc/config/linux/riscv/entrypoints.txt
    M libc/config/linux/riscv/headers.txt
    M libc/config/linux/syscall_numbers.h.inc
    M libc/config/linux/x86_64/entrypoints.txt
    M libc/config/linux/x86_64/headers.txt
    M libc/include/CMakeLists.txt
    M libc/include/llvm-libc-types/CMakeLists.txt
    A libc/include/llvm-libc-types/struct_epoll_data.h
    A libc/include/llvm-libc-types/struct_epoll_event.h
    A libc/include/sys/epoll.h.def
    M libc/spec/gnu_ext.td
    M libc/spec/linux.td
    M libc/src/sys/CMakeLists.txt
    A libc/src/sys/epoll/CMakeLists.txt
    A libc/src/sys/epoll/epoll_pwait.h
    A libc/src/sys/epoll/epoll_pwait2.h
    A libc/src/sys/epoll/epoll_wait.h
    A libc/src/sys/epoll/linux/CMakeLists.txt
    A libc/src/sys/epoll/linux/epoll_pwait.cpp
    A libc/src/sys/epoll/linux/epoll_pwait2.cpp
    A libc/src/sys/epoll/linux/epoll_wait.cpp
    M libc/test/src/sys/CMakeLists.txt
    A libc/test/src/sys/epoll/CMakeLists.txt
    A libc/test/src/sys/epoll/linux/CMakeLists.txt
    A libc/test/src/sys/epoll/linux/epoll_pwait2_test.cpp
    A libc/test/src/sys/epoll/linux/epoll_pwait_test.cpp
    A libc/test/src/sys/epoll/linux/epoll_wait_test.cpp
    M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
    A utils/bazel/llvm-project-overlay/libc/test/src/sys/epoll/BUILD.bazel

  Log Message:
  -----------
  [libc] add epoll_wait functions (#79515)

The epoll_wait functions are syscall wrappers that were requested by
upstream users. This patch adds them, as well as their header and types.

The tests are currently incomplete since they require epoll_create to
properly test epoll_wait. That will be added in a followup patch since
this one is already very large.


  Commit: 67f9c35ffee1aea3fa8a18b57a7b27400a03435a
      https://github.com/llvm/llvm-project/commit/67f9c35ffee1aea3fa8a18b57a7b27400a03435a
  Author: Tacet <advenam.tacet at trailofbits.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

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

  Log Message:
  -----------
  Make two texts static in `ReplayInlineAdvisor` (#79489)

This commit makes two variables static.
That makes two buildbot tests pass with short string annotations.
I suspect that there may be use after end of life bug and it's fixed by
this change, but it requires confirmation.

Short string annotations PR (reverted):
- https://github.com/llvm/llvm-project/pull/79049

Tests fixed with this PR:
```
  LLVM :: Transforms/Inline/cgscc-inline-replay.ll 
  LLVM :: Transforms/SampleProfile/inline-replay.ll
```
Buildbot output:
https://lab.llvm.org/buildbot/#/builders/5/builds/40364/steps/9/logs/stdio

This PR does not resolve a problem with `Clang :: SemaCXX/builtins.cpp`,
related PR is:
- https://github.com/llvm/llvm-project/pull/79522


  Commit: 59e90609d265a4f797005f78c5c566bbf87fda40
      https://github.com/llvm/llvm-project/commit/59e90609d265a4f797005f78c5c566bbf87fda40
  Author: michaelrj-google <71531609+michaelrj-google at users.noreply.github.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M libc/config/linux/aarch64/entrypoints.txt
    M libc/config/linux/aarch64/headers.txt
    M libc/config/linux/api.td
    M libc/config/linux/arm/entrypoints.txt
    M libc/config/linux/arm/headers.txt
    M libc/config/linux/riscv/entrypoints.txt
    M libc/config/linux/riscv/headers.txt
    M libc/config/linux/syscall_numbers.h.inc
    M libc/config/linux/x86_64/entrypoints.txt
    M libc/config/linux/x86_64/headers.txt
    M libc/include/CMakeLists.txt
    M libc/include/llvm-libc-types/CMakeLists.txt
    R libc/include/llvm-libc-types/struct_epoll_data.h
    R libc/include/llvm-libc-types/struct_epoll_event.h
    R libc/include/sys/epoll.h.def
    M libc/spec/gnu_ext.td
    M libc/spec/linux.td
    M libc/src/sys/CMakeLists.txt
    R libc/src/sys/epoll/CMakeLists.txt
    R libc/src/sys/epoll/epoll_pwait.h
    R libc/src/sys/epoll/epoll_pwait2.h
    R libc/src/sys/epoll/epoll_wait.h
    R libc/src/sys/epoll/linux/CMakeLists.txt
    R libc/src/sys/epoll/linux/epoll_pwait.cpp
    R libc/src/sys/epoll/linux/epoll_pwait2.cpp
    R libc/src/sys/epoll/linux/epoll_wait.cpp
    M libc/test/src/sys/CMakeLists.txt
    R libc/test/src/sys/epoll/CMakeLists.txt
    R libc/test/src/sys/epoll/linux/CMakeLists.txt
    R libc/test/src/sys/epoll/linux/epoll_pwait2_test.cpp
    R libc/test/src/sys/epoll/linux/epoll_pwait_test.cpp
    R libc/test/src/sys/epoll/linux/epoll_wait_test.cpp
    M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
    R utils/bazel/llvm-project-overlay/libc/test/src/sys/epoll/BUILD.bazel

  Log Message:
  -----------
  Revert "[libc] add epoll_wait functions" (#79534)

Reverts llvm/llvm-project#79515

Some minor breakages. Will fix tomorrow.


  Commit: de5e4d7c69549cc8e7e0daee56502e61b9c3cad5
      https://github.com/llvm/llvm-project/commit/de5e4d7c69549cc8e7e0daee56502e61b9c3cad5
  Author: Peiming Liu <36770114+PeimingLiu at users.noreply.github.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M mlir/lib/Dialect/SparseTensor/Transforms/Utils/LoopEmitter.cpp
    M mlir/lib/Dialect/SparseTensor/Transforms/Utils/SparseTensorLevel.cpp
    M mlir/lib/Dialect/SparseTensor/Transforms/Utils/SparseTensorLevel.h
    M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_strided_conv_2d_nhwc_hwcf.mlir

  Log Message:
  -----------
  [mlir][sparse] fix error when convolution stride is applied on a dens… (#79521)

…e level.


  Commit: 0a3b5ece0e51b85e4674388f46a0205c4361f76e
      https://github.com/llvm/llvm-project/commit/0a3b5ece0e51b85e4674388f46a0205c4361f76e
  Author: Enna1 <xumingjie.enna1 at bytedance.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M compiler-rt/include/CMakeLists.txt

  Log Message:
  -----------
  [MemProf] Add missing header to list of installed headers. (#79413)

There were buildbot failures when running memprof tests: 
Failed Tests (12):
  MemProfiler-x86_64-linux :: TestCases/interface_test.cpp
  MemProfiler-x86_64-linux :: TestCases/log_path_test.cpp
  MemProfiler-x86_64-linux :: TestCases/memprof_merge_mib.cpp
  MemProfiler-x86_64-linux :: TestCases/memprof_profile_dump.cpp
  MemProfiler-x86_64-linux :: TestCases/profile_reset.cpp
  MemProfiler-x86_64-linux :: TestCases/unaligned_loads_and_stores.cpp
  MemProfiler-x86_64-linux-dynamic :: TestCases/interface_test.cpp
  MemProfiler-x86_64-linux-dynamic :: TestCases/log_path_test.cpp
  MemProfiler-x86_64-linux-dynamic :: TestCases/memprof_merge_mib.cpp
  MemProfiler-x86_64-linux-dynamic :: TestCases/memprof_profile_dump.cpp
  MemProfiler-x86_64-linux-dynamic :: TestCases/profile_reset.cpp
MemProfiler-x86_64-linux-dynamic ::
TestCases/unaligned_loads_and_stores.cpp

See
- https://lab.llvm.org/buildbot/#/builders/258/builds/8852
- https://lab.llvm.org/buildbot/#/builders/258/builds/12876

I suspect the failure is because when build with
-DLLVM_ENABLE_RUNTIMES=compiler-rt -DCOMPILER_RT_BUILD_SANITIZERS=OFF,
the headers sanitizer/allocator_interface.h and
sanitizer/common_interface_defs.h
are not copied to the build tree, and not installed.
But in the failed memprof tests,
sanitizer/allocator_interface.h or sanitizer/memprof_interface.h is
included.

This patch adds sanitizer/allocator_interface.h and
sanitizer/memprof_interface.h to memprof headers if
COMPILER_RT_BUILD_SANITIZERS is false.


  Commit: 4792f912b232141ecba4cbae538873be3c28556c
      https://github.com/llvm/llvm-project/commit/4792f912b232141ecba4cbae538873be3c28556c
  Author: Chen Zheng <czhengsz at cn.ibm.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M clang/lib/Basic/Targets/PPC.cpp
    M clang/test/CodeGen/PowerPC/attr-target-ppc.c
    M clang/test/Driver/ppc-dependent-options.cpp

  Log Message:
  -----------
  [PowerPC] Diagnose invalid combination with Altivec, VSX and soft-float (#79109)

Moved from https://reviews.llvm.org/D126302

The current behaviour with these three options is quite undesirable:
-mno-altivec -mvsx allows VSX to override no Altivec, thereby turning on
both
-msoft-float -maltivec causes a crash if an actual Altivec instruction
is required because soft float turns of Altivec
-msoft-float -mvsx is also accepted with both Altivec and VSX turned off
(potentially causing crashes as above)

This patch diagnoses these impossible combinations in the driver so the
user does not end up with surprises in terms of their options being
ignored or silently overridden.

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

---------

Co-authored-by: Nemanja Ivanovic <nemanja.i.ibm at gmail.com>


  Commit: e0ade459917e22f9930559453155537ad2b5e0d8
      https://github.com/llvm/llvm-project/commit/e0ade459917e22f9930559453155537ad2b5e0d8
  Author: Enna1 <xumingjie.enna1 at bytedance.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M llvm/lib/Transforms/Instrumentation/MemProfiler.cpp

  Log Message:
  -----------
  [MemProf][NFC] Rename DefaultShadowGranularity to DefaultMemGranulari… (#79412)

…ty in instrumentation code, be consistent with runtime

In runtime code, the size of memory block mapped to a single shadow
location is called MEM_GRANULARITY.
In instrumentation code, the size of memory block mapped to a single
shadow location is called DefaultShadowGranularity.
Actually, the SHADOW_GRANULARITY is 8 (1 << SHADOW_SCALE), and the
MEM_GRANULARITY is 64.
The wording of DefaultShadowGranularity in instrumentation code is a bit
misleading, this patch renames DefaultShadowGranularity to
DefaultMemGranularity, be consistent with runtime.


  Commit: f0346a5862cc2f177e102d96f9f88da55fe82fd3
      https://github.com/llvm/llvm-project/commit/f0346a5862cc2f177e102d96f9f88da55fe82fd3
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M flang/lib/Frontend/CompilerInstance.cpp
    M flang/lib/Frontend/TextDiagnosticBuffer.cpp

  Log Message:
  -----------
  [Frontend] Use SmallString::operator std::string (NFC)


  Commit: d7ff7c3d182450b5fea2018a4b427ab04ed7b158
      https://github.com/llvm/llvm-project/commit/d7ff7c3d182450b5fea2018a4b427ab04ed7b158
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

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

  Log Message:
  -----------
  [Transforms] Use llvm::pred_size and llvm::pred_successors (NFC)


  Commit: eeb0e9f82e26421ad9f9499a9cb0108f53495bdb
      https://github.com/llvm/llvm-project/commit/eeb0e9f82e26421ad9f9499a9cb0108f53495bdb
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

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

  Log Message:
  -----------
  [Analysis] Use llvm::successors (NFC)


  Commit: e6bafbe72623b3f6fd974bd7f59f38c59f1e9df3
      https://github.com/llvm/llvm-project/commit/e6bafbe72623b3f6fd974bd7f59f38c59f1e9df3
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M clang/utils/TableGen/ClangDiagnosticsEmitter.cpp
    M clang/utils/TableGen/NeonEmitter.cpp

  Log Message:
  -----------
  [TableGen] Use StringRef::consume_{front,back} (NFC)


  Commit: 1e9924c1f248bbddcb95d82a59708d617297dad3
      https://github.com/llvm/llvm-project/commit/1e9924c1f248bbddcb95d82a59708d617297dad3
  Author: wanglei <wanglei at loongson.cn>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M llvm/lib/Target/LoongArch/LoongArchTargetTransformInfo.cpp

  Log Message:
  -----------
  [LoongArch] Fixing the incorrect return value of LoongArchTTIImpl::getRegisterBitWidth (#79441)

When we do not enable vector features, we should return the default
value (`TargetTransformInfoImplBase::getRegisterBitWidth`) instead of
zero.

This should fix the LoongArch [buildbot
breakage](https://lab.llvm.org/staging/#/builders/5/builds/486) from
#78943.


  Commit: b75cad44136e06222e054998b2337952fed4642f
      https://github.com/llvm/llvm-project/commit/b75cad44136e06222e054998b2337952fed4642f
  Author: Philip Reames <preames at rivosinc.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

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

  Log Message:
  -----------
  [RISCV] Minor whitespace as a test change [nfc]


  Commit: fd0637cfe835d6d4d0d3ebde3663f94a7bb3cd76
      https://github.com/llvm/llvm-project/commit/fd0637cfe835d6d4d0d3ebde3663f94a7bb3cd76
  Author: Nico Weber <thakis at chromium.org>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M libcxxabi/src/demangle/ItaniumDemangle.h
    M llvm/include/llvm/Demangle/ItaniumDemangle.h

  Log Message:
  -----------
  [ItaniumDemangle] reapply 0e754e114a6 (#79488)

It got lost in 50b58e89a122.


  Commit: 8e01042da9d385d5ecd41e3ff3b60763995f253f
      https://github.com/llvm/llvm-project/commit/8e01042da9d385d5ecd41e3ff3b60763995f253f
  Author: Brandon Wu <brandon.wu at sifive.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M clang/test/Driver/riscv-toolchain-gcc-multilib-reuse.c
    M llvm/lib/Support/RISCVISAInfo.cpp

  Log Message:
  -----------
  [RISCV] Add missing dependency check for Zvkb (#79467)


  Commit: fb94c6491a114ebd5815b1d42665a8f6bcd9d639
      https://github.com/llvm/llvm-project/commit/fb94c6491a114ebd5815b1d42665a8f6bcd9d639
  Author: Brandon Wu <brandon.wu at sifive.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M clang/include/clang/Basic/riscv_sifive_vector.td
    M clang/lib/Headers/sifive_vector.h
    M clang/lib/Sema/SemaChecking.cpp
    M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/non-overloaded/xsfvcp-x-rv64.c
    M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/non-overloaded/xsfvcp-x.c
    M clang/test/CodeGen/RISCV/rvv-intrinsics-handcrafted/xsfvcp-index-out-of-range.c
    M llvm/include/llvm/IR/IntrinsicsRISCVXsf.td
    M llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
    M llvm/lib/Target/RISCV/RISCVISelDAGToDAG.h
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVInstrInfoXSf.td
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-xsfvcp-x.ll
    M llvm/test/CodeGen/RISCV/rvv/xsfvcp-x.ll

  Log Message:
  -----------
  [RISCV][SiFive] Reduce intrinsics of SiFive VCIX extension (#79407)

This patch models LMUL and SEW as inputs in sf_vc_x_se and sf_vc_i_se,
it reduces 42 intrinsics in the lookup table.


  Commit: e0092eae431956a2fd17f7ea88e7ba26d5e44f7e
      https://github.com/llvm/llvm-project/commit/e0092eae431956a2fd17f7ea88e7ba26d5e44f7e
  Author: Brandon Wu <brandon.wu at sifive.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M clang/include/clang/Support/RISCVVIntrinsicUtils.h
    M clang/lib/Sema/SemaRISCVVectorLookup.cpp
    M clang/lib/Support/RISCVVIntrinsicUtils.cpp

  Log Message:
  -----------
  [RISCV][clang] Optimize memory usage of intrinsic lookup table (#77487)

This patch optimize:
  1. Reduce string size of RVVIntrinsicDef.
  2. Reduce the type size of the index of intrinsics.

I use valgrind --tool=massif to analyze a simple program:
```
#include <riscv_vector.h>
vint32m1_t test(vint32m1_t v1, vint32m1_t v2, size_t vl) {
  return __riscv_vadd(v1, v2, vl);
}
```
and before optimization, the peak memory usage is 15.68MB,
after optimization, the peak memory usage is 13.69MB.


  Commit: eeddfec8c9dc91e3d723a3d8ec3fb108972e031d
      https://github.com/llvm/llvm-project/commit/eeddfec8c9dc91e3d723a3d8ec3fb108972e031d
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst

  Log Message:
  -----------
  [Docs] Fix documentation build.

Missing ending `` after c92ad411f2f94d8521cd18abcb37285f9a390ecb


  Commit: 3c9f34c12450345c6eb524e47cf79664271e4260
      https://github.com/llvm/llvm-project/commit/3c9f34c12450345c6eb524e47cf79664271e4260
  Author: Michał Górny <mgorny at gentoo.org>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M llvm/cmake/modules/LLVMConfig.cmake.in

  Log Message:
  -----------
  [llvm] [cmake] Include httplib in LLVMConfig.cmake (#79305)

Include LLVM_ENABLE_HTTPLIB along with httplib package finding in
LLVMConfig.cmake, as this dependency is needed by LLVMDebuginfod that is
now used by LLDB. Without it, building LLDB standalone fails with:

```
CMake Error at /usr/lib/llvm/19/lib64/cmake/llvm/LLVMExports.cmake:90 (set_target_properties):
  The link interface of target "LLVMDebuginfod" contains:

    httplib::httplib

  but the target was not found.  Possible reasons include:

    * There is a typo in the target name.
    * A find_package call is missing for an IMPORTED target.
    * An ALIAS target is missing.

Call Stack (most recent call first):
  /usr/lib/llvm/19/lib64/cmake/llvm/LLVMConfig.cmake:357 (include)
  cmake/modules/LLDBStandalone.cmake:9 (find_package)
  CMakeLists.txt:34 (include)
```


  Commit: 76ead96c1d06ee0d828238bce96d0107e650b5fa
      https://github.com/llvm/llvm-project/commit/76ead96c1d06ee0d828238bce96d0107e650b5fa
  Author: MaheshRavishankar <1663364+MaheshRavishankar at users.noreply.github.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M flang/lib/Optimizer/Dialect/FIROps.cpp
    M mlir/include/mlir/Dialect/SCF/IR/SCFOps.td
    M mlir/include/mlir/Dialect/SCF/Transforms/TileUsingInterface.h
    M mlir/include/mlir/Interfaces/LoopLikeInterface.td
    M mlir/lib/Dialect/Affine/IR/AffineOps.cpp
    M mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp
    M mlir/lib/Dialect/Linalg/Transforms/Tiling.cpp
    M mlir/lib/Dialect/SCF/IR/SCF.cpp
    M mlir/lib/Dialect/SCF/Transforms/TileUsingInterface.cpp
    M mlir/lib/Dialect/SCF/Utils/Utils.cpp
    M mlir/lib/Interfaces/LoopLikeInterface.cpp
    M mlir/lib/Transforms/Utils/LoopInvariantCodeMotionUtils.cpp
    M mlir/test/Dialect/Linalg/generalize-tensor-unpack-tile.mlir
    M mlir/test/Dialect/Linalg/tile-conv.mlir
    M mlir/test/Dialect/Linalg/tile-tensors.mlir
    M mlir/test/Dialect/Linalg/transform-op-hoist-pad-build-packing-loop-nest.mlir
    M mlir/test/Dialect/Linalg/transform-op-hoist-pad.mlir
    M mlir/test/Dialect/Linalg/transform-op-peel-and-vectorize.mlir
    M mlir/test/Dialect/Tensor/tiling.mlir
    A mlir/test/Interfaces/TilingInterface/tile-and-fuse-using-scfforall.mlir
    M mlir/test/Interfaces/TilingInterface/tile-fuse-and-yield-using-interface.mlir
    A mlir/test/Interfaces/TilingInterface/tile-fuse-and-yield-using-scfforall.mlir
    M mlir/test/Interfaces/TilingInterface/tile-pad-using-interface.mlir
    M mlir/test/Interfaces/TilingInterface/tile-using-interface.mlir
    M mlir/test/Interfaces/TilingInterface/tile-using-scfforall.mlir
    M mlir/test/lib/Interfaces/TilingInterface/TestTilingInterfaceTransformOps.cpp
    M mlir/test/lib/Interfaces/TilingInterface/TestTilingInterfaceTransformOps.td
    M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel

  Log Message:
  -----------
  [mlir][TilingInterface] Use `LoopLikeOpInterface` in tiling using SCF to unify tiling with `scf.for` and `scf.forall`. (#77874)

Using `LoopLikeOpInterface` as the basis for the implementation unifies
all the tiling logic for both `scf.for` and `scf.forall`. The only
difference is the actual loop generation. This is a follow up to
https://github.com/llvm/llvm-project/pull/72178
Instead of many entry points for each loop type, the loop type is now
passed as part of the options passed to the tiling method.

This is a breaking change with the following changes

1) The `scf::tileUsingSCFForOp` is renamed to `scf::tileUsingSCF`
2) The `scf::tileUsingSCFForallOp` is deprecated. The same
   functionality is obtained by using `scf::tileUsingSCF` and setting
   the loop type in `scf::SCFTilingOptions` passed into this method to
   `scf::SCFTilingOptions::LoopType::ForallOp` (using the
   `setLoopType` method).
3) The `scf::tileConsumerAndFusedProducerGreedilyUsingSCFForOp` is
   renamed to `scf::tileConsumerAndFuseProducerUsingSCF`. The use of
   the `controlFn` in `scf::SCFTileAndFuseOptions` allows implementing
   any strategy with the default callback implemeting the greedy fusion.
4) The `scf::SCFTilingResult` and `scf::SCFTileAndFuseResult` now use
   `SmallVector<LoopLikeOpInterface>`.
5) To make `scf::ForallOp` implement the parts of
   `LoopLikeOpInterface` needed, the `getOutputBlockArguments()`
   method is replaced with `getRegionIterArgs()`

These changes now bring the tiling and fusion capabilities using
`scf.forall` on par with what was already supported by `scf.for`


  Commit: df5e431e8dcb555320be7f7ae4d499a11e0b17db
      https://github.com/llvm/llvm-project/commit/df5e431e8dcb555320be7f7ae4d499a11e0b17db
  Author: MaheshRavishankar <1663364+MaheshRavishankar at users.noreply.github.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPUResourceUsageAnalysis.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUResourceUsageAnalysis.h

  Log Message:
  -----------
  [Target][AMDGPU] Fix TSan error on AMDGPU Target. (#79529)

Updating the value of the global flag within the code was flagged as a
TSAN error. Fixing that.


  Commit: 6d0080b5de26d8a8682ec6169851af3d04e30ccb
      https://github.com/llvm/llvm-project/commit/6d0080b5de26d8a8682ec6169851af3d04e30ccb
  Author: XinWang10 <108658776+XinWang10 at users.noreply.github.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M llvm/include/llvm/Support/X86DisassemblerDecoderCommon.h
    M llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp
    M llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
    M llvm/lib/Target/X86/X86InstrKL.td
    M llvm/lib/Target/X86/X86InstrMisc.td
    M llvm/lib/Target/X86/X86InstrSystem.td
    M llvm/test/CodeGen/X86/enqcmd-intrinsics.ll
    M llvm/test/CodeGen/X86/keylocker-intrinsics-fast-isel.ll
    M llvm/test/CodeGen/X86/usermsr-intrinsics.ll
    A llvm/test/MC/Disassembler/X86/apx/enqcmd.txt
    A llvm/test/MC/Disassembler/X86/apx/keylocker.txt
    A llvm/test/MC/Disassembler/X86/apx/user-msr.txt
    A llvm/test/MC/X86/apx/enqcmd-att.s
    A llvm/test/MC/X86/apx/enqcmd-intel.s
    A llvm/test/MC/X86/apx/keylocker-att.s
    A llvm/test/MC/X86/apx/keylocker-intel.s
    A llvm/test/MC/X86/apx/user-msr-att.s
    A llvm/test/MC/X86/apx/user-msr-intel.s
    M llvm/utils/TableGen/X86DisassemblerTables.cpp
    M llvm/utils/TableGen/X86RecognizableInstr.cpp

  Log Message:
  -----------
  [X86] Support promoted ENQCMD, KEYLOCKER and USERMSR (#77293)

R16-R31 was added into GPRs in
https://github.com/llvm/llvm-project/pull/70958,
This patch supports the promoted ENQCMD, KEYLOCKER and USER-MSR
instructions in EVEX space.

RFC:
https://discourse.llvm.org/t/rfc-design-for-apx-feature-egpr-and-ndd-support/73031/4


  Commit: d9d1ae6400a7f8a12068bdd37ecda62f07e52bce
      https://github.com/llvm/llvm-project/commit/d9d1ae6400a7f8a12068bdd37ecda62f07e52bce
  Author: Qizhi Hu <836744285 at qq.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/AST/TypeLoc.h
    M clang/lib/Sema/TreeTransform.h
    A clang/test/Sema/attr-lifetimebound-no-crash.cpp

  Log Message:
  -----------
  [Clang][Sema] fix crash of attribute transform (#78088)

Try to fix [issue](https://github.com/llvm/llvm-project/issues/73619)

1. During transforming `FunctionProtoType`, if `ThisContext` is
`nullptr` and `CurrentContext` is `ClassTemplateSpecializationDecl`,
Constructor of `CXXThisScopeRAII` and `Sema::getCurrentThisType` won't
set `CXXThisTypeOverride` of Sema. This will lead to building `this` in
`RebuildCXXThisExpr` with a invalid type(NULL type) and cause crash.
2. During transforming attribute type, if `modifiedType` of attribute
type is changed, `EquivalentType` need to be transformed. If
`EquivalentType` is `FunctionProtoType`, its `ParamVarDecl` will not be
copyed(but parameter num does) and will not be instanced in
`TransformFunctionTypeParams` since `ParamVarDecl` is `nullptr`. This
will lead to crash in `findInstantiationOf`(can't find the instance of
`ParamVarDecl`).

This patch tries to fix these issues above.

1. If `CurrentContext` is `ClassTemplateSpecializationDecl`, Use it.
2. Use `EquivalentTypeLoc` instead of `EquivalentType` since it has
parameter info. But, if use current `TypeLocBuilder`, it will crash in
`TypeLocBuilder::push` since `LastType` is mismatch. Use an auxiliary
`TypeLocBuilder` instead and get transformed `EquivalentType`.

Co-authored-by: huqizhi <836744285 at qq.com>


  Commit: 02d56801ee8e4fcce303a47e5fac1967f5660d38
      https://github.com/llvm/llvm-project/commit/02d56801ee8e4fcce303a47e5fac1967f5660d38
  Author: XinWang10 <108658776+XinWang10 at users.noreply.github.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86InstrMisc.td
    M llvm/lib/Target/X86/X86InstrPredicates.td
    M llvm/lib/Target/X86/X86InstrRAOINT.td
    M llvm/test/CodeGen/X86/movbe.ll
    M llvm/test/CodeGen/X86/raoint-intrinsics-32.ll
    M llvm/test/CodeGen/X86/raoint-intrinsics-64.ll
    A llvm/test/MC/Disassembler/X86/apx/movbe.txt
    A llvm/test/MC/Disassembler/X86/apx/rao-int.txt
    M llvm/test/MC/Disassembler/X86/apx/reverse-encoding.txt
    A llvm/test/MC/X86/apx/movbe-att.s
    A llvm/test/MC/X86/apx/movbe-intel.s
    A llvm/test/MC/X86/apx/rao-int-att.s
    A llvm/test/MC/X86/apx/rao-int-intel.s
    M llvm/test/TableGen/x86-fold-tables.inc

  Log Message:
  -----------
  [X86] Support APX promoted RAO-INT and MOVBE instructions (#77431)

R16-R31 was added into GPRs in
https://github.com/llvm/llvm-project/pull/70958,
This patch supports the promoted RAO-INT and MOVBE instructions in EVEX
space.

RFC:
https://discourse.llvm.org/t/rfc-design-for-apx-feature-egpr-and-ndd-support/73031/4


  Commit: 7b3389980ddbd84f72ccc4776889c67519cc2c14
      https://github.com/llvm/llvm-project/commit/7b3389980ddbd84f72ccc4776889c67519cc2c14
  Author: Qizhi Hu <836744285 at qq.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/Sema/SemaTemplateInstantiate.cpp
    A clang/test/SemaTemplate/default-parm-init.cpp

  Log Message:
  -----------
  [Clang][Sema] fix outline member function template with default align crash (#78400)

Try to fix [issue](https://github.com/llvm/llvm-project/issues/68490)
and some extented problem. Root cause of current issue is that error
handling in instantiation of function parameter with default
initialization on sizeof or align expression. When instance an
out-of-line template member function, depth of `TemplateTypeParmDecl` in
default initialization doesn't change while depth of other template
parameter does and this will lead to some template parameter
uninstanced. Also, sometime it will leader to wrong instantiation when
it uses the template parameter of class.
Fix it by add template args of context when it's out-of-line. This will
make `MultiLevelTemplateArgumentList::getNumLevels` matching the depth
of template parameter. Testcase with some `static_assert` demonstrates
the template parameter has been instanced correctly.

Co-authored-by: huqizhi <836744285 at qq.com>


  Commit: f174648b6cabb20f368b31fdef091295c5512338
      https://github.com/llvm/llvm-project/commit/f174648b6cabb20f368b31fdef091295c5512338
  Author: Enna1 <xumingjie.enna1 at bytedance.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M compiler-rt/include/CMakeLists.txt

  Log Message:
  -----------
  Revert "[MemProf] Add missing header to list of installed headers. (#79413)"

This reverts commit 0a3b5ece0e51b85e4674388f46a0205c4361f76e.


  Commit: ac6f9a785c8adb39bbd9f4aeb20e73b46855ea5b
      https://github.com/llvm/llvm-project/commit/ac6f9a785c8adb39bbd9f4aeb20e73b46855ea5b
  Author: Enna1 <xumingjie.enna1 at bytedance.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M compiler-rt/include/CMakeLists.txt

  Log Message:
  -----------
  Reland "[MemProf] Add missing header to list of installed headers. (#79413)"

This reland commit 0a3b5ece0e51b85e4674388f46a0205c4361f76e with fix.


  Commit: d9dd5f049f16a866dcfa74d0207dd376543c1ec4
      https://github.com/llvm/llvm-project/commit/d9dd5f049f16a866dcfa74d0207dd376543c1ec4
  Author: 袁銓嶽 <84860242+circYuan at users.noreply.github.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M clang/include/clang/Basic/riscv_vector.td

  Log Message:
  -----------
  [Clang][RISCV][RVV Intrinsic] Fix codegen redundant intrinsic names (#77889)

This patch avoids adding redundant vcreate_v intrinsics to the RISCV
IntrinsicList.
Since vcreate_v uses LFixedLog2LMUL, I believe we can simply set
Log2LMUL to the smallest value (-3) to prevent the creation of redundant
vcreate_v instances with the same intrinsic name and prototype in the
IntrinsicList when clang creates it.


  Commit: af91b42a3524576de95027f800baa0c7670cfd3d
      https://github.com/llvm/llvm-project/commit/af91b42a3524576de95027f800baa0c7670cfd3d
  Author: AtariDreams <83477269+AtariDreams at users.noreply.github.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

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

  Log Message:
  -----------
  [AMDGPU][NFC] Remove FIXME that has been resolved (#79047)

As of 5aea839ab3edeb58bb0eea833ad9427d0ae7ef67, this FIXME has been
resolved.

So we can remove this comment.


  Commit: 0f4e9e718b4e79d3f760fd7ea399c23fc97a7716
      https://github.com/llvm/llvm-project/commit/0f4e9e718b4e79d3f760fd7ea399c23fc97a7716
  Author: paperchalice <liujunchang97 at outlook.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M llvm/include/llvm/Passes/MachinePassRegistry.def
    M llvm/include/llvm/Passes/PassBuilder.h

  Log Message:
  -----------
  [CodeGen] Add no-op machine function pass for test purpose (#79541)


  Commit: f0012dcce4c08d0e4a16b65f2a15f7dc7fb7e533
      https://github.com/llvm/llvm-project/commit/f0012dcce4c08d0e4a16b65f2a15f7dc7fb7e533
  Author: David Green <david.green at arm.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M llvm/test/CodeGen/AArch64/arm64-csel.ll

  Log Message:
  -----------
  [AArch64] Add a couple more csinc tests with disjoint ors. NFC


  Commit: 14a027b2b79b85f15dfa259c6b113bcf681d06a2
      https://github.com/llvm/llvm-project/commit/14a027b2b79b85f15dfa259c6b113bcf681d06a2
  Author: Shengchen Kan <shengchen.kan at intel.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86FlagsCopyLowering.cpp
    A llvm/test/CodeGen/X86/apx/flags-copy-lowering.mir

  Log Message:
  -----------
  [X86][CodeGen] Support flags copy lowering for NDD ADC/SBB/RCL/RCR (#79280)


  Commit: 8a4cb7b6077e51adfa87209869ab0ae83dc531a7
      https://github.com/llvm/llvm-project/commit/8a4cb7b6077e51adfa87209869ab0ae83dc531a7
  Author: Shengchen Kan <shengchen.kan at intel.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M llvm/test/MC/Disassembler/X86/apx/evex-format.txt
    M llvm/test/MC/X86/apx/evex-format-att.s
    M llvm/test/MC/X86/apx/evex-format-intel.s

  Log Message:
  -----------
  [X86][test] Add MRM7r/MRM7m entries in evex format enc/dec tests


  Commit: f6290e0daf5aff7132cab097fb13aad8a20ad070
      https://github.com/llvm/llvm-project/commit/f6290e0daf5aff7132cab097fb13aad8a20ad070
  Author: Alexandros Lamprineas <alexandros.lamprineas at arm.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M clang/test/CodeGen/attr-target-version.c

  Log Message:
  -----------
  [NFC][FMV] Add tests to demonstrate feature priorities. (#79455)

Adds tests showing that we select function version according to the
highest feature priority. This will make the changes introduced by
#79316 more evident.


  Commit: fb8eb4251ac0ac27ab0125caf1abe3dbb93732f4
      https://github.com/llvm/llvm-project/commit/fb8eb4251ac0ac27ab0125caf1abe3dbb93732f4
  Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M mlir/lib/Conversion/ArmSMEToSCF/ArmSMEToSCF.cpp
    M mlir/test/Conversion/ArmSMEToSCF/arm-sme-to-scf.mlir

  Log Message:
  -----------
  [mlir][ArmSME] Fix loop bounds of masked loads/stores (#78983)

Previously, for masked tile loads/stores we directly used the dimension
size from the `vector.create_mask` operation as the upper bound of the
`scf.for` over the tile slices. This was not correct, as `create_mask`
allows operands to be greater than the size of the vector dimension, in
which case the for loop bounds should be clamped to the number of tile
slices.


  Commit: 3ed98cb3de303c316c943da7d60b48472f7efdec
      https://github.com/llvm/llvm-project/commit/3ed98cb3de303c316c943da7d60b48472f7efdec
  Author: Matthias Springer <me at m-sp.org>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M flang/lib/Optimizer/HLFIR/Transforms/BufferizeHLFIR.cpp
    M mlir/include/mlir/IR/Builders.h
    M mlir/include/mlir/IR/PatternMatch.h
    M mlir/include/mlir/Transforms/DialectConversion.h
    M mlir/lib/IR/Builders.cpp
    M mlir/lib/IR/PatternMatch.cpp
    M mlir/lib/Transforms/Utils/DialectConversion.cpp
    M mlir/lib/Transforms/Utils/GreedyPatternRewriteDriver.cpp

  Log Message:
  -----------
  [mlir][IR] Change `notifyBlockCreated` to `notifyBlockInserted` (#79472)

This change makes the callback consistent with
`notifyOperationInserted`: both now notify about IR insertion, not IR
creation. See also #78988.

This change also simplifies the dialect conversion: it is no longer
necessary to override the `inlineRegionBefore` method. All information
that is necessary for rollback is provided with the
`notifyBlockInserted` callback.


  Commit: c23608b8d58bdeb0134d99168e6d0335da2c8366
      https://github.com/llvm/llvm-project/commit/c23608b8d58bdeb0134d99168e6d0335da2c8366
  Author: Jeremy Morse <jeremy.morse at sony.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M llvm/include/llvm/IR/BasicBlock.h
    M llvm/lib/IR/BasicBlock.cpp
    M llvm/lib/IR/Function.cpp

  Log Message:
  -----------
  [DebugInfo][RemoveDIs] Don't pointlessly scan funcs for debug-info (#79327)

The utility functions this patch modifies are part of cleanly
transitioning from a context where we use dbg.value intrinsics to one
where we use DPValue objects to record debug-info, and back again.
However, this is a waste of time in non-debug builds (i.e. no -g on the
command line). We still have to call the function on all blocks though
to set the IsNewDbgInfoFormat flag.

To reduce the overhead of this, test whether there's any debug-info in
the function by checking whether the function has a DISubprogram, and
pass a flag down to the utility functions indicating whether they can
skip the scan.

It feels a bit dumb to me now that we're scanning and setting a flag in
a load of blocks when we don't have to -- however it's been really
valuable during development for working out where spurious dbg.value
intrinsics leak into a RemoveDIs context. Happily we'll be able to just
delete this flag entirely when RemoveDIs lands and sticks, and the
conversion routines will eventually be pushed down into the debug-info
autoupgrade path.


  Commit: 11d76fdb0b9c500aace938427bba18602d15b17d
      https://github.com/llvm/llvm-project/commit/11d76fdb0b9c500aace938427bba18602d15b17d
  Author: David Spickett <david.spickett at linaro.org>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M lldb/source/Plugins/DynamicLoader/FreeBSD-Kernel/DynamicLoaderFreeBSDKernel.cpp

  Log Message:
  -----------
  [lldb][FreeBSD] Fix unused variable warning


  Commit: 821dee98526057286ec2161b3c40ad6676b5377f
      https://github.com/llvm/llvm-project/commit/821dee98526057286ec2161b3c40ad6676b5377f
  Author: Shengchen Kan <shengchen.kan at intel.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86InstrInfo.cpp
    M llvm/test/CodeGen/X86/apx/mul-i1024.ll

  Log Message:
  -----------
  [X86][CodeGen] Add NDD entries for isAssociativeAndCommutative


  Commit: 46dd8acf36109c421443bcc4238dad3de5939acb
      https://github.com/llvm/llvm-project/commit/46dd8acf36109c421443bcc4238dad3de5939acb
  Author: Diana Picus <Diana-Magda.Picus at amd.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp
    M llvm/lib/Target/AMDGPU/GCNSchedStrategy.h
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.buffer.load.ll

  Log Message:
  -----------
  [AMDGPU] Fix typos. NFC


  Commit: 1bc1dcf28f41fc28c38e00d8d709eabe07751e14
      https://github.com/llvm/llvm-project/commit/1bc1dcf28f41fc28c38e00d8d709eabe07751e14
  Author: David Spickett <david.spickett at linaro.org>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M llvm/include/llvm/Support/AutoConvert.h

  Log Message:
  -----------
  [llvm][Support][NFC] Remove stray character in AutoConvert.h license comment


  Commit: b64c26f34f6d64eb15bd7584623b37d1a8e0e5d5
      https://github.com/llvm/llvm-project/commit/b64c26f34f6d64eb15bd7584623b37d1a8e0e5d5
  Author: Tom Eccles <tom.eccles at arm.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M flang/docs/Intrinsics.md
    M flang/include/flang/Optimizer/Builder/IntrinsicCall.h
    M flang/include/flang/Optimizer/Builder/Runtime/Intrinsics.h
    M flang/include/flang/Runtime/extensions.h
    M flang/lib/Evaluate/intrinsics.cpp
    M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
    M flang/lib/Optimizer/Builder/Runtime/Intrinsics.cpp
    M flang/runtime/extensions.cpp
    A flang/test/Lower/Intrinsics/sleep.f90

  Log Message:
  -----------
  [flang][runtime] Implement SLEEP intrinsic (#79074)

This intrinsic is a gnu extension. See
https://gcc.gnu.org/onlinedocs/gfortran/SLEEP.html

This intrinsic is used in minighost:
https://github.com/Mantevo/miniGhost/blob/c2102b521568a74862fa5abb074b1fc8041fc222/ref/MG_UTILS.F#L606


  Commit: 0ab539fd6748adf2f638e10514dd9419597d8863
      https://github.com/llvm/llvm-project/commit/0ab539fd6748adf2f638e10514dd9419597d8863
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/LoopVectorize.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/VPlanValue.h
    M llvm/test/Transforms/LoopVectorize/cast-induction.ll
    M llvm/test/Transforms/LoopVectorize/interleave-and-scalarize-only.ll
    M llvm/test/Transforms/LoopVectorize/pr46525-expander-insertpoint.ll

  Log Message:
  -----------
  [VPlan] Add new VPScalarCastRecipe, use for IV & step trunc. (#78113)

Add a new recipe to model scalar cast instructions, without relying on
an underlying instruction.

This allows creating scalar casts, without relying on an underlying
instruction (like the current VPReplicateRecipe). The new recipe is 
used to explicitly model both truncating the induction step and the
VPDerivedIVRecipe, thus simplifying both the recipe and code
needed to introduce it.

Truncating VPWidenIntOrFpInductionRecipes should also be modeled using
the new recipe, as follow-up.

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


  Commit: 659a217b91a93869b6399fb85e24722a524c9d95
      https://github.com/llvm/llvm-project/commit/659a217b91a93869b6399fb85e24722a524c9d95
  Author: Danial Klimkin <dklimkin at users.noreply.github.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

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

  Log Message:
  -----------
  Fix bazel deps on ilogb_test_template (#79577)


  Commit: d4c01714239e80d21e441c3886749fc56b743f81
      https://github.com/llvm/llvm-project/commit/d4c01714239e80d21e441c3886749fc56b743f81
  Author: Graham Hunter <graham.hunter at arm.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
    M llvm/test/Transforms/LoopVectorize/AArch64/vector-call-linear-args.ll

  Log Message:
  -----------
  [LV] Fix handling of interleaving linear args (#78725)

Currently when interleaving vector calls with linear arguments,
the Part is ignored and all vector calls use the initial value
from the first lane of the current iteration.

Fix this to extract from the correct part of the linear vector.


  Commit: bf716fb7169b500a7fe3f20a39ac0288fb13cac5
      https://github.com/llvm/llvm-project/commit/bf716fb7169b500a7fe3f20a39ac0288fb13cac5
  Author: Shih-Po Hung <shihpo.hung at sifive.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

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

  Log Message:
  -----------
  [RISCV] Refine cost on Min/Max reduction with i1 type (#79401)

It is split off from #77342.
InstCombine transform min/max reduction with i1 into arithmetic
reduction,
so this patch reuses the cost logic in arithmetic reduction cost
function.


  Commit: 5e9f0e37494ab42ff8d850527c5517f3006e63e9
      https://github.com/llvm/llvm-project/commit/5e9f0e37494ab42ff8d850527c5517f3006e63e9
  Author: David Spickett <david.spickett at linaro.org>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M lldb/source/Plugins/Language/ObjC/NSArray.cpp
    M lldb/source/Plugins/Language/ObjC/NSDictionary.cpp
    M lldb/source/Plugins/Language/ObjC/NSSet.cpp

  Log Message:
  -----------
  [lldb][ObjC][NFC] Fix c++20 gcc compile errors

When compiling with gcc 11+ and -DCMAKE_CXX_STANDARD=20, errors
like the following happened:
```
llvm-project/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp:1063:5: error: template-id not allowed for destructor
 1063 |     ~GenericNSDictionaryMSyntheticFrontEnd<D32,D64>() {
      |     ^
```
This appears to be something only gcc enforces and only from 11 and beyond.

This changes fixes all the instances of this pattern by removing the
template arguments.


  Commit: 28ee54c32e6b761e65fd2a7412776f6300ad922b
      https://github.com/llvm/llvm-project/commit/28ee54c32e6b761e65fd2a7412776f6300ad922b
  Author: David Spickett <david.spickett at linaro.org>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M lldb/source/Plugins/Language/ObjC/NSArray.cpp
    M lldb/source/Plugins/Language/ObjC/NSDictionary.cpp
    M lldb/source/Plugins/Language/ObjC/NSSet.cpp

  Log Message:
  -----------
  Revert "[lldb][ObjC][NFC] Fix c++20 gcc compile errors"

This reverts commit 5e9f0e37494ab42ff8d850527c5517f3006e63e9
because it creates a new warning from clang:
```
NSDictionary.cpp:1063:14: warning: ISO C++ requires the name after '::~' to be found in the same scope as the name before '::~' [-Wdtor-name]
    D32, D64>::~GenericNSDictionaryMSyntheticFrontEnd() {
    ~~~~~~~~~^~
             ::GenericNSDictionaryMSyntheticFrontEnd
```

If you remove the template arguments from before the `::`, you
then get:
```
NSDictionary.cpp:1062:27: error: use of class template 'lldb_private::formatters::GenericNSDictionaryMSyntheticFrontEnd' requires template arguments
lldb_private::formatters::GenericNSDictionaryMSyntheticFrontEnd::~GenericNSDictionaryMSyntheticFrontEnd() {
                          ^
```

And I'm not aware of a way to fix that.


  Commit: 550f0eb2ce12435b696b6c2a5fcbede8f6db68b1
      https://github.com/llvm/llvm-project/commit/550f0eb2ce12435b696b6c2a5fcbede8f6db68b1
  Author: Shengchen Kan <shengchen.kan at intel.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M llvm/include/llvm/CodeGen/TargetInstrInfo.h
    M llvm/lib/CodeGen/PeepholeOptimizer.cpp
    M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
    M llvm/lib/Target/AMDGPU/SIInstrInfo.h
    M llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp
    M llvm/lib/Target/ARM/ARMBaseInstrInfo.h
    M llvm/lib/Target/PowerPC/PPCInstrInfo.cpp
    M llvm/lib/Target/PowerPC/PPCInstrInfo.h
    M llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp
    M llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp
    M llvm/lib/Target/SystemZ/SystemZInstrInfo.h
    M llvm/lib/Target/VE/VEInstrInfo.cpp
    M llvm/lib/Target/VE/VEInstrInfo.h
    M llvm/lib/Target/X86/X86InstrInfo.cpp
    M llvm/lib/Target/X86/X86InstrInfo.h

  Log Message:
  -----------
  [NFC] Rename TargetInstrInfo::FoldImmediate to TargetInstrInfo::foldImmediate and simplify implementation for X86


  Commit: 6ccb06a7abc2062c72267bb7054502ae7db8cb82
      https://github.com/llvm/llvm-project/commit/6ccb06a7abc2062c72267bb7054502ae7db8cb82
  Author: lifengxiang1025 <lifengxiang.1025 at bytedance.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp
    A llvm/test/ThinLTO/X86/memprof_direct_recursion.ll

  Log Message:
  -----------
  [MemProf] Fix assert when exists direct recursion (#78264)

Fix assert in `MemProfContextDisambiguation::applyImport` when exists
direct recursion.


  Commit: 65fd05517fe19bb436432ca45c03b7e576a328b5
      https://github.com/llvm/llvm-project/commit/65fd05517fe19bb436432ca45c03b7e576a328b5
  Author: Dmitriy Smirnov <dmitriy.smirnov at arm.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M mlir/lib/Transforms/RemoveDeadValues.cpp
    M mlir/test/Transforms/remove-dead-values.mlir

  Log Message:
  -----------
  [MLIR] Added check for IsTerminator trait (#79317)

This PR adds a check for IsTerminator trait to prevent deletion of ops
like gpu.terminator as a "simple op" by RemoveDeadValues pass.


  Commit: 731c2049a4fa3a8704df6b82311948a1ed8de5a6
      https://github.com/llvm/llvm-project/commit/731c2049a4fa3a8704df6b82311948a1ed8de5a6
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/VPlan.cpp
    A llvm/test/Transforms/LoopVectorize/epilog-vectorization-trunc-induction-steps.ll

  Log Message:
  -----------
  [VPlan] Relax IV user assertion after 0ab539f for epilogue vec.

After 0ab539fd6748adf2f638e10514dd9419597d8863, the canonical IV in the
epilogue vector loop may be used by a trunc. Relax the corresponding
assert.

This should fix some build-bot failures, including
    https://lab.llvm.org/buildbot/#/builders/187/builds/14113
    https://lab.llvm.org/buildbot/#/builders/98/builds/32350
    https://lab.llvm.org/buildbot/#/builders/239/builds/5473


  Commit: d407e6ca61a422f25841674d8f0b5ea0dbec85f8
      https://github.com/llvm/llvm-project/commit/d407e6ca61a422f25841674d8f0b5ea0dbec85f8
  Author: Luke Lau <luke at igalia.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-shuffle-exact-vlen.ll

  Log Message:
  -----------
  [RISCV] Add test to showcase miscompile from #79072


  Commit: 5cf9f2cd9888feea23a624c1de3cc37ce8ce8112
      https://github.com/llvm/llvm-project/commit/5cf9f2cd9888feea23a624c1de3cc37ce8ce8112
  Author: Luke Lau <luke at igalia.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

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

  Log Message:
  -----------
  [RISCV] Fix M1 shuffle on wrong SrcVec in lowerShuffleViaVRegSplitting

This fixes a miscompile from #79072 where we were taking the wrong SrcVec to do
the M1 shuffle. E.g. if the SrcVecIdx was 2 and we had 2 VRegsPerSrc, we ended
up taking it from V1 instead of V2.


  Commit: 89cd345667a5f8f4c37c621fd8abe8d84e85c050
      https://github.com/llvm/llvm-project/commit/89cd345667a5f8f4c37c621fd8abe8d84e85c050
  Author: Andrei Golubev <andrey.golubev at intel.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M mlir/lib/Conversion/GPUCommon/GPUOpsLowering.cpp
    M mlir/lib/Conversion/GPUCommon/GPUToLLVMConversion.cpp
    M mlir/lib/Dialect/LLVMIR/Transforms/TypeConsistency.cpp

  Log Message:
  -----------
  [mlir][LLVM] Use int32_t to indirectly construct GEPArg (#79562)

GEPArg can only be constructed from int32_t and mlir::Value. Explicitly
cast other types (e.g. unsigned, size_t) to int32_t to avoid narrowing
conversion warnings on MSVC. Some recent examples of such are:

```
mlir\lib\Dialect\LLVMIR\Transforms\TypeConsistency.cpp: error C2398:
Element '1': conversion from 'size_t' to 'T' requires a narrowing
conversion
    with
    [
        T=mlir::LLVM::GEPArg
    ]

mlir\lib\Dialect\LLVMIR\Transforms\TypeConsistency.cpp: error C2398:
Element '1': conversion from 'unsigned int' to 'T' requires a narrowing
conversion
    with
    [
        T=mlir::LLVM::GEPArg
    ]
```

Co-authored-by: Nikita Kudriavtsev <nikita.kudriavtsev at intel.com>


  Commit: 1b7b40bf5d6847623e2737d4fe7b31a434195852
      https://github.com/llvm/llvm-project/commit/1b7b40bf5d6847623e2737d4fe7b31a434195852
  Author: Han-Chung Wang <hanhan0912 at gmail.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M mlir/lib/Dialect/Linalg/Transforms/Transforms.cpp
    M mlir/test/Dialect/Linalg/transform-lower-pack.mlir

  Log Message:
  -----------
  [mlir][Linalg] Support lowerUnPack for identity out_dims_perm cases. (#79594)


  Commit: bb945fcd4a54c2c8f898e2bdc0d65fae841a1909
      https://github.com/llvm/llvm-project/commit/bb945fcd4a54c2c8f898e2bdc0d65fae841a1909
  Author: David Spickett <david.spickett at linaro.org>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M lldb/source/Plugins/Language/ObjC/NSArray.cpp
    M lldb/source/Plugins/Language/ObjC/NSDictionary.cpp
    M lldb/source/Plugins/Language/ObjC/NSSet.cpp

  Log Message:
  -----------
  Reland "[lldb][ObjC][NFC] Fix c++20 gcc compile errors"

clang's -Wdtor name is correct, but the standard may have not
intended that meaning, according to https://bugs.llvm.org/show_bug.cgi?id=46979#c1.
Some of the wording may have changed in 20/23, but we of course
need to support c++17 as well as that's our default.

One workaround would be to explicitly open the namespaces,
then declare the destructor inside that.

Another as shown in the bug report is to repeat the class name, without
the template arguments, before the ::~. For example `Bar::Foo<T>::Foo::~Foo`.
(this extra Foo is the injected class name
https://en.cppreference.com/w/cpp/language/injected-class-name)

I chose to do this because it's the smallest change. It works
with gcc-13 and clang in c++17 and 20 modes (https://godbolt.org/z/fqs4fGE7T).


  Commit: f2d0bba8748137edc46ab88babcf83ceb23f68d2
      https://github.com/llvm/llvm-project/commit/f2d0bba8748137edc46ab88babcf83ceb23f68d2
  Author: Kai Nacke <kai.peter.nacke at ibm.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
    M llvm/unittests/CodeGen/GlobalISel/LegalizerHelperTest.cpp

  Log Message:
  -----------
  [GISel] Lower scalar G_SELECT in LegalizerHelper (#79342)

The LegalizerHelper only has support to lower G_SELECT with
vector operands. The approach is the same for scalar arguments,
which this PR adds.


  Commit: 035f33bf4138ac7b7360a83438988ce80bda5098
      https://github.com/llvm/llvm-project/commit/035f33bf4138ac7b7360a83438988ce80bda5098
  Author: Shengchen Kan <shengchen.kan at intel.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86InstrInfo.cpp
    M llvm/test/CodeGen/X86/select_const_i128.ll

  Log Message:
  -----------
  [X86][CodeGen] Add NDD entries for X86InstrInfo::foldImmediate


  Commit: 73874f7a39df74eacf1682b3961da2d8cb675f33
      https://github.com/llvm/llvm-project/commit/73874f7a39df74eacf1682b3961da2d8cb675f33
  Author: Guillaume Chatelet <gchatelet at google.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M libc/test/IntegrationTest/test.h
    M libc/test/UnitTest/LibcTest.h
    M libc/test/integration/src/pthread/pthread_create_test.cpp
    M libc/test/integration/src/pthread/pthread_join_test.cpp
    M libc/test/integration/src/unistd/getcwd_test.cpp
    M libc/test/src/dirent/dirent_test.cpp
    M libc/test/src/fcntl/creat_test.cpp
    M libc/test/src/fcntl/openat_test.cpp
    M libc/test/src/sched/get_priority_test.cpp
    M libc/test/src/sched/param_and_scheduler_test.cpp
    M libc/test/src/sched/sched_rr_get_interval_test.cpp
    M libc/test/src/sched/yield_test.cpp
    M libc/test/src/stdio/fgets_test.cpp
    M libc/test/src/stdio/fileop_test.cpp
    M libc/test/src/stdio/fopencookie_test.cpp
    M libc/test/src/stdio/remove_test.cpp
    M libc/test/src/stdio/setvbuf_test.cpp
    M libc/test/src/stdio/unlocked_fileop_test.cpp
    M libc/test/src/stdlib/StrtolTest.h
    M libc/test/src/stdlib/strtof_test.cpp
    M libc/test/src/stdlib/strtold_test.cpp
    M libc/test/src/string/strdup_test.cpp
    M libc/test/src/sys/prctl/linux/prctl_test.cpp
    M libc/test/src/sys/resource/getrlimit_setrlimit_test.cpp
    M libc/test/src/sys/sendfile/sendfile_test.cpp
    M libc/test/src/sys/socket/linux/bind_test.cpp
    M libc/test/src/sys/socket/linux/socket_test.cpp
    M libc/test/src/sys/stat/chmod_test.cpp
    M libc/test/src/sys/stat/fchmod_test.cpp
    M libc/test/src/sys/stat/fchmodat_test.cpp
    M libc/test/src/sys/stat/fstat_test.cpp
    M libc/test/src/sys/stat/lstat_test.cpp
    M libc/test/src/sys/stat/stat_test.cpp
    M libc/test/src/termios/termios_test.cpp
    M libc/test/src/time/gmtime_test.cpp
    M libc/test/src/time/nanosleep_test.cpp
    M libc/test/src/unistd/access_test.cpp
    M libc/test/src/unistd/chdir_test.cpp
    M libc/test/src/unistd/dup2_test.cpp
    M libc/test/src/unistd/dup3_test.cpp
    M libc/test/src/unistd/dup_test.cpp
    M libc/test/src/unistd/fchdir_test.cpp
    M libc/test/src/unistd/ftruncate_test.cpp
    M libc/test/src/unistd/isatty_test.cpp
    M libc/test/src/unistd/link_test.cpp
    M libc/test/src/unistd/linkat_test.cpp
    M libc/test/src/unistd/lseek_test.cpp
    M libc/test/src/unistd/pread_pwrite_test.cpp
    M libc/test/src/unistd/read_write_test.cpp
    M libc/test/src/unistd/readlink_test.cpp
    M libc/test/src/unistd/readlinkat_test.cpp
    M libc/test/src/unistd/symlink_test.cpp
    M libc/test/src/unistd/symlinkat_test.cpp
    M libc/test/src/unistd/syscall_test.cpp
    M libc/test/src/unistd/truncate_test.cpp
    M libc/test/src/unistd/unlink_test.cpp
    M libc/test/src/unistd/unlinkat_test.cpp

  Log Message:
  -----------
  [libc][NFC] Use specific ASSERT macros to test errno (#79573)

This patch provides specific test macros to deal with `errno`.
This will help abstract away the differences between unit test and integration/hermetic tests in #79319.
In one case we use `libc_errno` which is a struct, in the other case we deal directly with `errno`.


  Commit: afa52de9f6def6a0de962401f9a6b34925f7010e
      https://github.com/llvm/llvm-project/commit/afa52de9f6def6a0de962401f9a6b34925f7010e
  Author: Tom Eccles <tom.eccles at arm.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M flang/docs/Intrinsics.md
    M flang/include/flang/Optimizer/Builder/IntrinsicCall.h
    M flang/include/flang/Optimizer/Builder/Runtime/Intrinsics.h
    M flang/include/flang/Optimizer/Builder/Runtime/RTBuilder.h
    M flang/include/flang/Runtime/extensions.h
    M flang/lib/Evaluate/intrinsics.cpp
    M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
    M flang/lib/Optimizer/Builder/Runtime/Intrinsics.cpp
    M flang/runtime/extensions.cpp
    A flang/test/Lower/Intrinsics/signal.f90

  Log Message:
  -----------
  [flang][Runtime] Add SIGNAL intrinisic (#79337)

The intrinsic is defined as a GNU extension here:
https://gcc.gnu.org/onlinedocs/gfortran/SIGNAL.html

And as an IBM extension here:
https://www.ibm.com/docs/en/xffbg/121.141?topic=procedures-signali-proc-extension

The IBM version provides a compatible subset of the functionality
offered by the GNU version. This patch supports most of the GNU
features, but not calling SIGNAL as a function. We don't currently
support intrinsics being both subroutines AND functions and this changed
seemed too large to be justified by a non-standard intrinsic.

I cannot point to open source code Fortran using this intrinsic. This is
needed for a proprietary code base.


  Commit: e278c6709605f05c434d2f9f583122003c454293
      https://github.com/llvm/llvm-project/commit/e278c6709605f05c434d2f9f583122003c454293
  Author: Shimin Cui <scui at ca.ibm.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M llvm/lib/Target/PowerPC/PPCMergeStringPool.cpp
    A llvm/test/CodeGen/PowerPC/merge-string-used-by-metadata.mir

  Log Message:
  -----------
  Add support to meger strings used by metadata (#77364)

Currently if the merged string is used by metadata, its metadata uses
are not replaced if the string is merged. This is to add code support
for the metadata use replacement.


  Commit: e0e216099505bc5051ba53b2fdb8202cdde5f47e
      https://github.com/llvm/llvm-project/commit/e0e216099505bc5051ba53b2fdb8202cdde5f47e
  Author: Danial Klimkin <dklimkin at users.noreply.github.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

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

  Log Message:
  -----------
  Fix bazel build past 3fdb431b636975f2062b1931158aa4dfce6a3ff1 (#79599)


  Commit: 7b7d2dd7e3e42c941338edcd5dbc2ff0e5426c28
      https://github.com/llvm/llvm-project/commit/7b7d2dd7e3e42c941338edcd5dbc2ff0e5426c28
  Author: David Spickett <david.spickett at linaro.org>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M llvm/include/llvm/DebugInfo/LogicalView/Core/LVOptions.h

  Log Message:
  -----------
  [llvm][DebugInfo] Fix c++20 warnings in LVOptions.h (#79585)

Compiling with -DCMAKE_CXX_STANDARD=20 produces 228 warnings from this
file due to:
```
LVOptions.h:515:16: warning: implicit capture of 'this' with a capture default of '=' is deprecated [-Wdeprecated-this-capture]
```

So I've changed these to explicitly list the captures, including `this`.

As llvm requires at least c++17, I think we could use `[=, *this]`
instead. However when I did so I got a lot of errors about const. So on
balance, explicitly listing the captures seems better than adding some
kind of const cast to each one.

These and other warnings can be seen on the c++20 buildbot
https://lab.llvm.org/buildbot/#/builders/249.


  Commit: 70fbcdb41d50ee23a36501aee733be33eecfb7da
      https://github.com/llvm/llvm-project/commit/70fbcdb41d50ee23a36501aee733be33eecfb7da
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp

  Log Message:
  -----------
  Fix MSVC "signed/unsigned mismatch" warning. NFC.


  Commit: 962fbafecf4730ba84a3b9fd7a662a5c30bb2c7c
      https://github.com/llvm/llvm-project/commit/962fbafecf4730ba84a3b9fd7a662a5c30bb2c7c
  Author: David Sherwood <57997763+david-arm at users.noreply.github.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    A llvm/test/Transforms/LoopVectorize/AArch64/low_trip_memcheck_cost.ll

  Log Message:
  -----------
  [LoopVectorize] Refine runtime memory check costs when there is an outer loop (#76034)

When we generate runtime memory checks for an inner loop it's
possible that these checks are invariant in the outer loop and
so will get hoisted out. In such cases, the effective cost of
the checks should reduce to reflect the outer loop trip count.

This fixes a 25% performance regression introduced by commit

49b0e6dcc296792b577ae8f0f674e61a0929b99d

when building the SPEC2017 x264 benchmark with PGO, where we
decided the inner loop trip count wasn't high enough to warrant
the (incorrect) high cost of the runtime checks. Also, when
runtime memory checks consist entirely of diff checks these are
likely to be outer loop invariant.


  Commit: c64c789fb4098e5cac1e9e2dc0ea1174eceaf2a2
      https://github.com/llvm/llvm-project/commit/c64c789fb4098e5cac1e9e2dc0ea1174eceaf2a2
  Author: Danial Klimkin <dklimkin at users.noreply.github.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

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

  Log Message:
  -----------
  Revert "Fix bazel build past 3fdb431b636975f2062b1931158aa4dfce6a3ff1… (#79601)

… (#79599)"

This reverts commit e0e216099505bc5051ba53b2fdb8202cdde5f47e.


  Commit: 0d5ba8ace697a7ebc08e4eaa2be3aa959aabe298
      https://github.com/llvm/llvm-project/commit/0d5ba8ace697a7ebc08e4eaa2be3aa959aabe298
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

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

  Log Message:
  -----------
  [X86] Comment all getTargetConstantBitsFromNode calls that override the Whole/Partial Undefs flags. NFC.


  Commit: 9058503d2690022642d952ee80ecde5ecdbc79ca
      https://github.com/llvm/llvm-project/commit/9058503d2690022642d952ee80ecde5ecdbc79ca
  Author: spupyrev <spupyrev at users.noreply.github.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M bolt/include/bolt/Passes/HFSort.h
    M bolt/lib/Passes/CMakeLists.txt
    R bolt/lib/Passes/HFSortPlus.cpp
    M bolt/lib/Passes/ReorderFunctions.cpp

  Log Message:
  -----------
  [BOLT] Deprecate hfsort+ in favor of cdsort (#72408)

A new function sorting algorithm (cdsort) in LLVM is an optimized 
version of BOLT's hfsort+. In order to avoid code duplication and 
simplify maintenance, getting rid of hfsort+.

Perf-wise this is likely a neutral change, though differences on 
individual benchmarks are possible, since the generated function layout 
has changed. I tested cdsort vs hfsort+ on a number of open-source and 
prod binaries built in different modes and record an average neutral 
perf difference, perhaps with more "green" counters.


  Commit: 157b62612a7c72094b5b35a6b01368e3221086cd
      https://github.com/llvm/llvm-project/commit/157b62612a7c72094b5b35a6b01368e3221086cd
  Author: Jeremy Morse <jeremy.morse at sony.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M llvm/include/llvm/IR/BasicBlock.h
    M llvm/lib/IR/BasicBlock.cpp
    M llvm/lib/IR/Function.cpp

  Log Message:
  -----------
  Revert "[DebugInfo][RemoveDIs] Don't pointlessly scan funcs for debug-info (#79327)"

This reverts commit c23608b8d58bdeb0134d99168e6d0335da2c8366.

It looks like this depends on #79345, which isn't going to land today, so revert for now.


  Commit: a49f630cf6f12f3ca2d5814a581986140ee6e474
      https://github.com/llvm/llvm-project/commit/a49f630cf6f12f3ca2d5814a581986140ee6e474
  Author: jeanPerier <jperier at nvidia.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M flang/include/flang/Optimizer/Builder/FIRBuilder.h
    M flang/include/flang/Optimizer/Builder/HLFIRTools.h
    M flang/include/flang/Optimizer/Dialect/FIRType.h
    M flang/lib/Lower/CallInterface.cpp
    M flang/lib/Lower/ConvertCall.cpp
    M flang/lib/Lower/ConvertExprToHLFIR.cpp
    M flang/lib/Lower/ConvertVariable.cpp
    M flang/lib/Optimizer/Builder/FIRBuilder.cpp
    M flang/lib/Optimizer/Dialect/FIRType.cpp
    A flang/test/Lower/HLFIR/assumed-rank-iface-alloc-ptr.f90
    A flang/test/Lower/HLFIR/assumed-rank-iface.f90
    M flang/test/Lower/HLFIR/ignore-rank-unlimited-polymorphic.f90
    A flang/test/Lower/HLFIR/ignore-type-assumed-shape.f90

  Log Message:
  -----------
  [flang] Lower passing non assumed-rank/size to assumed-ranks (#79145)

Start implementing assumed-rank support as described in
https://github.com/llvm/llvm-project/blob/main/flang/docs/AssumedRank.md

This commit holds the minimal support for lowering calls to procedure
with assumed-rank arguments where the procedure implementation is done
in C.

The case for passing assumed-size to assumed-rank is left TODO since it
will be done a change in assumed-size lowering that is better done in
another patch.

Care is taken to set the lower bounds to zero when passing non allocatable no pointer as descriptor
to a BIND(C) procedure as required per 18.5.3 point 3. This was not done before while the requirements also applies to non assumed-rank descriptors. This change  required special attention with IGNORE_TKR(t) to avoid emitting invalid fir.rebox operations (the actual argument type must be used in this case as the output type). 

Implementation of Fortran procedure with assumed-rank arguments is still
TODO.


  Commit: d9245e8b471c6b3f61e3810faa9788b4994e295a
      https://github.com/llvm/llvm-project/commit/d9245e8b471c6b3f61e3810faa9788b4994e295a
  Author: Shengchen Kan <shengchen.kan at intel.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
    M llvm/test/CodeGen/X86/cmp.ll
    M llvm/test/CodeGen/X86/popcnt.ll

  Log Message:
  -----------
  [X86][ISEL] Add NDD entries in X86ISelDAGToDAG.cpp


  Commit: 9a8437f50470e2658ca0b26bbc9f3da654c20dba
      https://github.com/llvm/llvm-project/commit/9a8437f50470e2658ca0b26bbc9f3da654c20dba
  Author: Boian Petkantchin <boian.petkantchin at amd.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/Mesh/IR/MeshBase.td
    M mlir/include/mlir/Dialect/Mesh/IR/MeshOps.td
    M mlir/include/mlir/Dialect/Mesh/Interfaces/ShardingInterface.h
    M mlir/include/mlir/Dialect/Mesh/Transforms/Spmdization.h
    M mlir/lib/Dialect/Mesh/IR/MeshOps.cpp
    M mlir/lib/Dialect/Mesh/Interfaces/ShardingInterface.cpp
    M mlir/lib/Dialect/Mesh/Transforms/Simplifications.cpp
    M mlir/lib/Dialect/Mesh/Transforms/Spmdization.cpp
    M mlir/lib/Dialect/Mesh/Transforms/Transforms.cpp
    M mlir/test/Dialect/Mesh/canonicalization.mlir
    M mlir/test/Dialect/Mesh/folding.mlir
    M mlir/test/Dialect/Mesh/invalid.mlir
    M mlir/test/Dialect/Mesh/ops.mlir
    M mlir/test/Dialect/Mesh/process-multi-index-op-lowering.mlir
    M mlir/test/Dialect/Mesh/resharding-spmdization.mlir
    M mlir/test/Dialect/Mesh/sharding-propagation.mlir
    M mlir/test/Dialect/Mesh/simplifications.mlir
    M mlir/test/lib/Dialect/Mesh/TestReshardingSpmdization.cpp

  Log Message:
  -----------
  [mlir][mesh] Rename cluster to mesh (#79484)

Rename
* Op mesh.cluster -> mesh.mesh
* Op mesh.cluster_shape -> mesh.mesh_shape
* variables and attributes.

The name `mesh` is more specific to what it really represents. It is a
mesh of devices.
The name `cluster` implies a broader posibility of device
configurations. When just the word `mesh` is used the meaning can often
be inferred from the context whether it refers to the mesh dialect or a
device mesh. The full name can be used when needed.


  Commit: 1f930cf894ccb086ad77ca70b48edb1b4ed092c4
      https://github.com/llvm/llvm-project/commit/1f930cf894ccb086ad77ca70b48edb1b4ed092c4
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/icmp-pow2-mask.ll

  Log Message:
  -----------
  [X86] Fold not(pcmpeq(and(X,CstPow2),0)) -> pcmpeq(and(X,CstPow2),CstPow2) (REAPPLIED)

Reapply b9483d30a7d7a0650a0e83c75fcb9ab4932f475a with fix (typo - wasn't ensuring icmp vs zero)

Fixes #78888


  Commit: f07eb24bb003aea435da94569910529fe5e332a4
      https://github.com/llvm/llvm-project/commit/f07eb24bb003aea435da94569910529fe5e332a4
  Author: Danial Klimkin <dklimkin at users.noreply.github.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

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

  Log Message:
  -----------
  Minor bazel file cleanup (#79607)

this excluded file is gone.


  Commit: 8f98c2c3b6cb7039333ee8e141a5842b32cbc2e8
      https://github.com/llvm/llvm-project/commit/8f98c2c3b6cb7039333ee8e141a5842b32cbc2e8
  Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M llvm/utils/gn/secondary/bolt/lib/Passes/BUILD.gn

  Log Message:
  -----------
  [gn build] Port 9058503d2690


  Commit: a437347562e2f0711ca9f5819831946e06e1ac93
      https://github.com/llvm/llvm-project/commit/a437347562e2f0711ca9f5819831946e06e1ac93
  Author: Evgenii Kudriashov <evgenii.kudriashov at intel.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    R llvm/test/CodeGen/X86/GlobalISel/and-scalar.ll
    R llvm/test/CodeGen/X86/GlobalISel/or-scalar.ll
    R llvm/test/CodeGen/X86/GlobalISel/xor-scalar.ll
    M llvm/test/CodeGen/X86/isel-and.ll
    M llvm/test/CodeGen/X86/isel-or.ll
    M llvm/test/CodeGen/X86/isel-xor.ll

  Log Message:
  -----------
  [X86][GlobalISel] Remove G_OR/G_AND/G_XOR test duplication (NFC) (#79088)


  Commit: 63fe80fb18c9660e678d24c184021841cb02d82f
      https://github.com/llvm/llvm-project/commit/63fe80fb18c9660e678d24c184021841cb02d82f
  Author: Krzysztof Drewniak <Krzysztof.Drewniak at amd.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M llvm/lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp
    M llvm/test/CodeGen/AMDGPU/GlobalISel/merge-buffer-stores.ll
    M llvm/test/CodeGen/AMDGPU/constant-address-space-32bit.ll
    M llvm/test/CodeGen/AMDGPU/extract-subvector-16bit.ll
    M llvm/test/CodeGen/AMDGPU/machine-sink-temporal-divergence-swdev407790.ll
    M llvm/test/CodeGen/NVPTX/vector-loads.ll
    M llvm/test/CodeGen/PowerPC/mma-intrinsics.ll
    M llvm/test/CodeGen/PowerPC/sched-addi.ll
    M llvm/test/Transforms/SeparateConstOffsetFromGEP/AMDGPU/split-gep-and-gvn-addrspace-addressing-modes.ll
    M llvm/test/Transforms/SeparateConstOffsetFromGEP/NVPTX/split-gep.ll
    M llvm/test/Transforms/SeparateConstOffsetFromGEP/split-gep-or-as-add.ll

  Log Message:
  -----------
  [SeperateConstOffsetFromGEP] Handle `or disjoint` flags (#76997)

This commit extends separate-const-offset-from-gep to look at the
newly-added `disjoint` flag on `or` instructions so as to preserve
additional opportunities for optimization.

The tests were pre-committed in #76972.


  Commit: f13aac6517532bd1ec016d432c23e92ab6450313
      https://github.com/llvm/llvm-project/commit/f13aac6517532bd1ec016d432c23e92ab6450313
  Author: Michael Maitland <michaeltmaitland at gmail.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

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

  Log Message:
  -----------
  [RISCV] Add TuneNoSinkSplatOperands to sifive-p670 (#79492)


  Commit: c177507bd2778d69ed918798295d625346ac6ff4
      https://github.com/llvm/llvm-project/commit/c177507bd2778d69ed918798295d625346ac6ff4
  Author: isuckatcs <65320245+isuckatcs at users.noreply.github.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M clang/lib/AST/Interp/ByteCodeExprGen.cpp
    M clang/lib/AST/Interp/ByteCodeExprGen.h

  Log Message:
  -----------
  [clang][Interp] Cleaning up `FIXME`s added during `ArrayInitLoopExpr` implementation. (#70053)

This patch removes the two `FIXME`s that were added with patches related
to the expression mentioned in the title.


  Commit: 67c1c1dbb6cd473ce302079d0b3791ff461b7bba
      https://github.com/llvm/llvm-project/commit/67c1c1dbb6cd473ce302079d0b3791ff461b7bba
  Author: Nemanja Ivanovic <nemanja.i.ibm at gmail.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M clang/include/clang/Basic/Builtins.td
    M clang/include/clang/Basic/BuiltinsX86.def
    M clang/include/clang/Basic/TargetInfo.h
    M clang/lib/Basic/Targets/PPC.cpp
    M clang/lib/Basic/Targets/PPC.h
    M clang/lib/Basic/Targets/X86.h
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/lib/Sema/SemaChecking.cpp
    M clang/test/CodeGen/builtin-cpu-supports.c
    M clang/test/Sema/builtin-cpu-supports.c
    M llvm/include/llvm/IR/IntrinsicsPowerPC.td
    A llvm/include/llvm/TargetParser/PPCTargetParser.def
    M llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
    M llvm/lib/Target/PowerPC/PPCInstrInfo.cpp
    M llvm/lib/Target/PowerPC/PPCInstrInfo.td
    M llvm/lib/Target/PowerPC/PPCTargetMachine.h
    A llvm/test/CodeGen/PowerPC/cpu-supports.ll

  Log Message:
  -----------
  [PowerPC][X86] Make cpu id builtins target independent and lower for PPC (#68919)

Make __builtin_cpu_{init|supports|is} target independent and provide an
opt-in query for targets that want to support it. Each target is still
responsible for their specific lowering/code-gen. Also provide code-gen
for PowerPC.

I originally proposed this in https://reviews.llvm.org/D152914 and this
addresses the comments I received there.

---------

Co-authored-by: Nemanja Ivanovic <nemanjaivanovic at nemanjas-air.kpn>
Co-authored-by: Nemanja Ivanovic <nemanja at synopsys.com>


  Commit: 463529f31b90c9bc8c564a2071748683af166f11
      https://github.com/llvm/llvm-project/commit/463529f31b90c9bc8c564a2071748683af166f11
  Author: erichkeane <ekeane at nvidia.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M clang/include/clang/Basic/OpenACCKinds.h
    M clang/include/clang/Parse/Parser.h
    M clang/lib/Parse/ParseOpenACC.cpp
    M clang/test/ParserOpenACC/parse-clauses.c

  Log Message:
  -----------
  [OpenACC] Implement 'tile' clause parsing

The 'tile' clause takes a 'size-expr-list', where a 'size-expr' is
either an asterisk or an integral constant expression.  This patch
parsess it as an assignment expression, which we'll check for constness
and type in Sema.


  Commit: 15c04d51ff86232dbb544e28dd037d095c589206
      https://github.com/llvm/llvm-project/commit/15c04d51ff86232dbb544e28dd037d095c589206
  Author: Jon Roelofs <jonathan_roelofs at apple.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M llvm/include/llvm/TargetParser/AArch64TargetParser.h

  Log Message:
  -----------
  [TargetParser][AArch64] Update a comment now that FMV support builtins have moved. NFC


  Commit: 9b48aa203a59503177567e08a879cf1ba6f2b856
      https://github.com/llvm/llvm-project/commit/9b48aa203a59503177567e08a879cf1ba6f2b856
  Author: Jon Roelofs <jonathan_roelofs at apple.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M compiler-rt/lib/builtins/cpu_model/aarch64/fmv/apple.inc

  Log Message:
  -----------
  [compiler-rt][builtins][FMV] Early exit in the Apple __init_cpu_features_resolver(). NFC


  Commit: 36b4a9ccd9f7e04010476e6b2a311f2052a4ac20
      https://github.com/llvm/llvm-project/commit/36b4a9ccd9f7e04010476e6b2a311f2052a4ac20
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M clang/include/clang/Basic/CodeGenOptions.def
    M clang/include/clang/Driver/Options.td
    M clang/lib/CodeGen/BackendUtil.cpp
    M clang/lib/Driver/ToolChains/Clang.cpp
    M clang/lib/Driver/ToolChains/CommonArgs.cpp
    M clang/lib/Driver/ToolChains/CommonArgs.h
    A clang/test/CodeGen/RISCV/tls-dialect.c
    A clang/test/Driver/tls-dialect.c
    M llvm/include/llvm/TargetParser/Triple.h

  Log Message:
  -----------
  [Driver,CodeGen] Support -mtls-dialect= (#79256)

GCC supports -mtls-dialect= for several architectures to select TLSDESC.
This patch supports the following values

* x86: "gnu". "gnu2" (TLSDESC) is not supported yet.
* RISC-V: "trad" (general dynamic), "desc" (TLSDESC, see #66915)

AArch64 toolchains seem to support TLSDESC from the beginning, and the
general dynamic model has poor support. Nobody seems to use the option
-mtls-dialect= at all, so we don't bother with it.
There also seems very little interest in AArch32's TLSDESC support.

TLSDESC does not change IR, but affects object file generation. Without
a backend option the option is a no-op for in-process ThinLTO.

There seems no motivation to have fine-grained control mixing trad/desc
for TLS, so we just pass -mllvm, and don't bother with a modules flag
metadata or function attribute.

Co-authored-by: Paul Kirth <paulkirth at google.com>


  Commit: 45f883ed06f39fba7557dfbbff4d10595b45f874
      https://github.com/llvm/llvm-project/commit/45f883ed06f39fba7557dfbbff4d10595b45f874
  Author: dyung <douglas.yung at sony.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M llvm/test/CodeGen/SystemZ/zos-ppa2.ll

  Log Message:
  -----------
  Change check for embedded llvm version number to a regex to make test more flexible. (#79528)

This test started to fail when LLVM created the release/18.x branch and
the main branch subsequently had the version number increased from 18 to
19.

I investigated this failure (it was blocking our internal automation)
and discovered that the CHECK statement on line 27 seemed to have the
compiler version number (1800) encoded in octal that it was checking
for. I don't know if this is something that explicitly needs to be
checked, so I am leaving it in, but it should be more flexible so the
test doesn't fail anytime the version number is changed. To accomplish
that, I changed the check for the 4-digit version number to be a regex.

I originally updated this test for the 18->19 transition in
a01195ff5cc3d7fd084743b1f47007645bb385f4. This change makes the CHECK
line more flexible so it doesn't need to be continually updated.


  Commit: be8e462a0c27e4850020c96290cabdcdbcab46f3
      https://github.com/llvm/llvm-project/commit/be8e462a0c27e4850020c96290cabdcdbcab46f3
  Author: Andreu Carminati <andreu.carminati at hightec-rt.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M clang/lib/Driver/ToolChains/BareMetal.cpp
    M clang/lib/Driver/ToolChains/Gnu.cpp
    M clang/lib/Driver/ToolChains/RISCVToolchain.cpp
    M clang/test/Driver/baremetal.cpp
    M clang/test/Driver/riscv32-toolchain.c
    M clang/test/Driver/riscv64-toolchain.c

  Log Message:
  -----------
  [Clang][RISCV] Forward --no-relax option to linker for RISC-V (#76432)

In the case of -mno-relax option. Otherwise, we cannot prevent
relaxation if we split compilation and linking using Clang driver.

One can consider the following use case:

clang [...] -c -o myobject.o (just compile)
clang [...] myobject.o -o myobject.elf -mno-relax (linking)

In this case, myobject.elf will be relaxed, the -mno-relax will be
silently ignored.


  Commit: d5fe1bd081ec129a1259cccf5171692d87dbd1f3
      https://github.com/llvm/llvm-project/commit/d5fe1bd081ec129a1259cccf5171692d87dbd1f3
  Author: Amy Kwan <amy.kwan1 at ibm.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M clang/lib/Basic/Targets/PPC.cpp
    M clang/lib/Driver/ToolChains/Arch/PPC.cpp
    M clang/test/Driver/aix-small-local-exec-tls.c
    M llvm/lib/Target/PowerPC/PPCSubtarget.cpp
    M llvm/test/CodeGen/PowerPC/check-aix-small-local-exec-tls-opt-IRattribute.ll

  Log Message:
  -----------
  [AIX][TLS] Disallow the use of -maix-small-local-exec-tls and -fno-data-sections (#79252)

This patch disallows the use of the -maix-small-local-exec-tls and
-fno-data-sections options within clang, and also disallows the use of
the aix-small-local-exec-tls attribute with the -data-sections=false
option in llc.

This is because having data sections off when using the
aix-small-local-exec-tls feature is not ideal for performance. As the
small-local-exec-tls region is a limited resource, this space should not
used for variables that may be replaced.

Note, that on AIX, data sections is turned on by default, so this patch
makes it so that a diagnostic is emitted when users explicitly turn off
data sections while using the aix-small-local-exec-tls feature.


  Commit: 7f518ee9eaa53fcd475e374aaed05ada4573d115
      https://github.com/llvm/llvm-project/commit/7f518ee9eaa53fcd475e374aaed05ada4573d115
  Author: David Green <david.green at arm.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    M llvm/test/CodeGen/AArch64/pr79100.ll

  Log Message:
  -----------
  [DAG] Add a one-use check to concat -> scalar_to_vector fold. (#79510)

Without this we can end up with multiple copies from gpr->fpr.


  Commit: 5f22d3356cda0a9b1521c839c006f61b5cc504fc
      https://github.com/llvm/llvm-project/commit/5f22d3356cda0a9b1521c839c006f61b5cc504fc
  Author: Alex Langford <alangford at apple.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M lldb/include/lldb/Breakpoint/BreakpointID.h
    M lldb/include/lldb/Breakpoint/BreakpointIDList.h
    M lldb/source/Breakpoint/BreakpointIDList.cpp
    M lldb/source/Commands/CommandObjectBreakpoint.cpp
    M lldb/source/Commands/CommandObjectProcess.cpp

  Log Message:
  -----------
  [lldb][NFCI] Change BreakpointIDList::FindBreakpointID to BreakpointIDList::Contains (#79517)

`FindBreakpointID` take a BreakpointID and a pointer to a size_t (so you
can get position information). It returns a bool to indicate whether the
id was found in the list or not.

There are 2 callers of this currently and neither one actually uses the
position information, so I removed it. After that, I renamed it to
Contains to more accurately reflect the intent. Additionally, I changed
the argument type from a reference to a value (because BreakpointID is
just a wrapper around 2 integers, copies are cheap).


  Commit: 176d07d360094b366b25cc009846ec64ac7d8040
      https://github.com/llvm/llvm-project/commit/176d07d360094b366b25cc009846ec64ac7d8040
  Author: Alex Langford <alangford at apple.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M lldb/include/lldb/Utility/Event.h
    M lldb/source/API/SBEvent.cpp
    M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
    M lldb/source/Utility/Event.cpp

  Log Message:
  -----------
  [lldb][NFCI] Constrain EventDataBytes creation (#79508)

There are 3 ways to create an EventDataBytes object: (const char *),
(llvm::StringRef), and (const void *, size_t len). All of these cases
can be handled under `llvm::StringRef`. Additionally, this allows us to
remove the otherwise unused `SetBytes`, `SwapBytes`, and
`SetBytesFromCString` methods.


  Commit: bee1557ffc98e51ee714bab93cef011fe42468ab
      https://github.com/llvm/llvm-project/commit/bee1557ffc98e51ee714bab93cef011fe42468ab
  Author: Eli Friedman <efriedma at quicinc.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

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

  Log Message:
  -----------
  [NFC][AArch64] Fix indentation.


  Commit: a58c62fa824fd24d20fa2366e0ec8f241cb321fe
      https://github.com/llvm/llvm-project/commit/a58c62fa824fd24d20fa2366e0ec8f241cb321fe
  Author: Adhemerval Zanella <zatrazz at gmail.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86AsmPrinter.cpp
    A llvm/test/CodeGen/X86/note-cet-property-inlineasm.ll

  Log Message:
  -----------
  [X86] Do not end 'note.gnu.property' section with -fcf-protection (#79360)

The glibc now adds the required minimum ISA level for libc-nonshared.a
(linked on all programs) and this is done with an inline asm along with
.note.gnu.property and .pushsection/.popsection. However, the x86
backend always ends the 'note.gnu.property' section when building with
-fcf-protection, leading to assert failure:

llvm/llvm-project-git/llvm/lib/MC/MCStreamer.cpp:1251: virtual void
llvm::MCStreamer::switchSection(llvm::MCSection*, const llvm::MCExpr*):
Assertion `!Section->hasEnded() && "Section already ended"' failed.

[1]
https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/x86/isa-level.c;h=3f1b269848a52f994275bab6f60dded3ded6b144;hb=HEAD


  Commit: 02d3a799e7eb2997950d6a288a08a5e51ff0ff59
      https://github.com/llvm/llvm-project/commit/02d3a799e7eb2997950d6a288a08a5e51ff0ff59
  Author: Alex Langford <alangford at apple.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M lldb/include/lldb/Target/Process.h
    M lldb/include/lldb/Utility/Broadcaster.h
    M lldb/source/Target/Process.cpp
    M lldb/source/Utility/Broadcaster.cpp

  Log Message:
  -----------
  [lldb][NFCI] Remove EventData* parameter from BroadcastEventIfUnique (#79045)

Instead of passing the data to BroadcastEventIfUnique to create an Event
object on the behalf of the caller, the caller can create the Event
up-front.


  Commit: 26cc651f1b2a9c74ce332a14f0e35c03db34876b
      https://github.com/llvm/llvm-project/commit/26cc651f1b2a9c74ce332a14f0e35c03db34876b
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M lld/ELF/InputSection.h

  Log Message:
  -----------
  [ELF] Improve comment of InputSection::file and update getFile. NFC (#79550)

Clarify a comment after #78944.

All uses of `getFile()` assert `file` is non-null. `getFile` is not used
with a
synthetic section. Replace `cast_or_null` with `cast`.


  Commit: 59f05239dbbc2c37d9de2bf638a64e1e9abd9163
      https://github.com/llvm/llvm-project/commit/59f05239dbbc2c37d9de2bf638a64e1e9abd9163
  Author: gulfemsavrun <gulfem at google.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M libcxx/test/libcxx/fuzzing/random.pass.cpp
    M libcxx/test/std/depr/depr.c.headers/math_h.pass.cpp
    M libcxx/test/std/numerics/c.math/cmath.pass.cpp

  Log Message:
  -----------
  [libc++] Add clang-19 to failing tests on Windows (#79619)

After trunk is bumped to version 19, some libc++ tests started failing
on Windows. This patch adds clang-19 condition to XFAIL to fix the
issue.


  Commit: 6c74d8083bd97ff47cadb43cdf03da35f450389a
      https://github.com/llvm/llvm-project/commit/6c74d8083bd97ff47cadb43cdf03da35f450389a
  Author: Nour1248 <nourfouad1248 at gmail.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

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

  Log Message:
  -----------
  [clangd] fix clang-tidy warning (llvm-qualified-auto) (#79617)


  Commit: 2a068507016e476893b6b1b9c55b255dbae5829e
      https://github.com/llvm/llvm-project/commit/2a068507016e476893b6b1b9c55b255dbae5829e
  Author: Ziqing Luo <ziqing at udel.edu>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M clang/lib/Analysis/CalledOnceCheck.cpp
    M clang/test/SemaObjC/warn-called-once.m

  Log Message:
  -----------
  [-Wcompletion-handler] Fix a non-termination issue (#78380)

The Called-Once dataflow analysis could never terminate as a
consequence of non-monotonic update on states.  States of kind Escape
can override states leading to non-monotonic update.

This fix disallows the `Escape` state to override the `Reported`
state.

rdar://119671856


  Commit: 59bf60519fc30d9d36c86abd83093b068f6b1e4b
      https://github.com/llvm/llvm-project/commit/59bf60519fc30d9d36c86abd83093b068f6b1e4b
  Author: Oskar Wirga <10386631+oskarwirga at users.noreply.github.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M llvm/include/llvm/CodeGen/LivePhysRegs.h
    M llvm/include/llvm/CodeGen/MachineBasicBlock.h
    M llvm/lib/CodeGen/BranchFolding.cpp
    M llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
    M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
    M llvm/lib/Target/ARM/ARMLowOverheadLoops.cpp
    M llvm/lib/Target/PowerPC/PPCExpandAtomicPseudoInsts.cpp
    M llvm/lib/Target/PowerPC/PPCFrameLowering.cpp
    M llvm/lib/Target/SystemZ/SystemZFrameLowering.cpp
    M llvm/lib/Target/X86/X86FrameLowering.cpp
    M llvm/test/CodeGen/AArch64/stack-probing-last-in-block.mir
    M llvm/test/CodeGen/SystemZ/branch-folder-hoist-livein.mir
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/biquad-cascade-default.mir
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/biquad-cascade-optsize-strd-lr.mir
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/biquad-cascade-optsize.mir
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/it-block-mov.mir
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/loop-dec-copy-chain.mir
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/loop-dec-copy-prev-iteration.mir
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/loop-dec-liveout.mir
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/matrix-debug.mir
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/matrix.mir
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/mov-after-dlstp.mir
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/multi-block-cond-iter-count.mir
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/multiple-do-loops.mir
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/predicated-liveout.mir
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/remove-elem-moves.mir
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/skip-debug.mir
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/skip-vpt-debug.mir
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/spillingmove.mir
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/unrolled-and-vector.mir

  Log Message:
  -----------
  Refactor recomputeLiveIns to operate on whole CFG (#79498)

Currently, the way that recomputeLiveIns works is that it will recompute
the livein registers for that MachineBasicBlock but it matters what
order you call recomputeLiveIn which can result in incorrect register
allocations down the line.

This PR fixes that by simply recomputing the liveins for the entire CFG
until convergence is achieved. This makes it harder to introduce subtle
bugs which alter liveness.


  Commit: d2c816734526312551e99c14d243c87795b6d3f3
      https://github.com/llvm/llvm-project/commit/d2c816734526312551e99c14d243c87795b6d3f3
  Author: Tom Stellard <tstellar at redhat.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M .github/workflows/issue-release-workflow.yml

  Log Message:
  -----------
  [workflows] Use a custom token for creating backport PRs (#79501)

The CI tests don't get triggered if a PR is created by the builtin
github token, so we need to use a custom token when creating a PR.


  Commit: 55c6d9103444aaf70bf680c3768c14e8649bf580
      https://github.com/llvm/llvm-project/commit/55c6d9103444aaf70bf680c3768c14e8649bf580
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp
    M llvm/test/Transforms/InstCombine/shift-add.ll

  Log Message:
  -----------
  [InstCombine] Preserve nuw/nsw/exact flags when transforming (C shift (A add nuw C1)) --> ((C shift C1) shift A). (#79490)

If we weren't shifting out any non-zero bits or changing the sign before the transform, we
shouldn't be after.

Alive2: https://alive2.llvm.org/ce/z/mB-rWz


  Commit: 554540611201e06318a53b920d4d98a8e582a247
      https://github.com/llvm/llvm-project/commit/554540611201e06318a53b920d4d98a8e582a247
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M libcxx/include/__thread/poll_with_backoff.h

  Log Message:
  -----------
  [libc++][NFC] Improve variable naming in __libcpp_thread_poll_with_backoff (#79638)

I noticed that the parameter names used in that function were not very
descriptive during a recent review.


  Commit: e4afffbe8cc31278a9006712e7323d49eae9dbb6
      https://github.com/llvm/llvm-project/commit/e4afffbe8cc31278a9006712e7323d49eae9dbb6
  Author: Aiden Grossman <agrossman154 at yahoo.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    A llvm/utils/mlgo-utils/mlgo/corpus/__init__.py
    M llvm/utils/mlgo-utils/tests/lit.local.cfg
    A llvm/utils/mlgo-utils/tests/pytype.test

  Log Message:
  -----------
  [MLGO] Add pytype test (#79558)

This patch adds a pytype test to the mlgo-utils lit test suite to
prevent regressions in typing while we wait to setup precommit CI for
this specific project.

This is somewhat hacky, but is a temporary fix and will be pulled out
soonish. It also should only impact the ML buildbots as they are the
only ones that should have `pytype` installed.


  Commit: 82afd9b19aa4b41be98ebec517bd390f33906fae
      https://github.com/llvm/llvm-project/commit/82afd9b19aa4b41be98ebec517bd390f33906fae
  Author: Nikolas Klauser <nikolasklauser at berlin.de>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M .github/workflows/libcxx-build-and-test.yaml
    A libcxx/trigger
    M libcxx/utils/ci/buildkite-pipeline.yml
    M runtimes/CMakeLists.txt

  Log Message:
  -----------
  [libc++] Use GitHub-provided runners for the windows CI (#79326)

Co-authored-by: Martin Storsjö <martin at martin.st>


  Commit: 3fa14233c4631ad1062553883835a5d5b36f2fe6
      https://github.com/llvm/llvm-project/commit/3fa14233c4631ad1062553883835a5d5b36f2fe6
  Author: Benjamin Kramer <benny.kra at googlemail.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M libcxx/include/__system_error/error_category.h

  Log Message:
  -----------
  [libc++] Annotate generic_category/system_category as const (#78052)

This lets the compiler eliminate unused/duplicate calls to it.


  Commit: 6f97e6bcf71d5cb6130d74d75f1db87e63be2c8d
      https://github.com/llvm/llvm-project/commit/6f97e6bcf71d5cb6130d74d75f1db87e63be2c8d
  Author: Caslyn Tonelli <6718161+Caslyn at users.noreply.github.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M libc/test/UnitTest/FuchsiaTest.h

  Log Message:
  -----------
  [fuchsia][libc] Include missing macro definitions (#79639)

PR 79573 introduced `ASSERT_ERRNO_*` macros for use in libc tests.
Introduce these macro definitions to FuchsiaTest.h for string tests to
compile on Fuchsia.


  Commit: 07a1925b8b92f29880be4030630ed5053783708f
      https://github.com/llvm/llvm-project/commit/07a1925b8b92f29880be4030630ed5053783708f
  Author: Nikita Popov <nikita.ppv at gmail.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M llvm/include/llvm/CodeGen/LivePhysRegs.h
    M llvm/include/llvm/CodeGen/MachineBasicBlock.h
    M llvm/lib/CodeGen/BranchFolding.cpp
    M llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
    M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
    M llvm/lib/Target/ARM/ARMLowOverheadLoops.cpp
    M llvm/lib/Target/PowerPC/PPCExpandAtomicPseudoInsts.cpp
    M llvm/lib/Target/PowerPC/PPCFrameLowering.cpp
    M llvm/lib/Target/SystemZ/SystemZFrameLowering.cpp
    M llvm/lib/Target/X86/X86FrameLowering.cpp
    M llvm/test/CodeGen/AArch64/stack-probing-last-in-block.mir
    M llvm/test/CodeGen/SystemZ/branch-folder-hoist-livein.mir
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/biquad-cascade-default.mir
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/biquad-cascade-optsize-strd-lr.mir
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/biquad-cascade-optsize.mir
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/it-block-mov.mir
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/loop-dec-copy-chain.mir
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/loop-dec-copy-prev-iteration.mir
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/loop-dec-liveout.mir
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/matrix-debug.mir
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/matrix.mir
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/mov-after-dlstp.mir
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/multi-block-cond-iter-count.mir
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/multiple-do-loops.mir
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/predicated-liveout.mir
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/remove-elem-moves.mir
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/skip-debug.mir
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/skip-vpt-debug.mir
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/spillingmove.mir
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/unrolled-and-vector.mir

  Log Message:
  -----------
  Revert "Refactor recomputeLiveIns to operate on whole CFG (#79498)"

This reverts commit 59bf60519fc30d9d36c86abd83093b068f6b1e4b.

Introduces a major compile-time regression.


  Commit: 2b25e40a887e835c3c8d7e61feaaaaab1ed2c367
      https://github.com/llvm/llvm-project/commit/2b25e40a887e835c3c8d7e61feaaaaab1ed2c367
  Author: Aiden Grossman <agrossman154 at yahoo.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M llvm/utils/mlgo-utils/tests/pytype.test

  Log Message:
  -----------
  [MLGO] Switch test to invoke pytype through python

Currently this test is assuming that ~/.local/bin (or wherever the
Python binaries are installed to) is on the path. This is not a valid
assumption in most cases, and it also means we might not find the
version of pytype associated with the Python interpreter being used to
test LLVM, which could create some inconsistencies. This patch fixes
that by invoking pytype through the Python interpreter passed to lit.


  Commit: 1d5820aafeb08c176189d44331e3e2a8030e76e4
      https://github.com/llvm/llvm-project/commit/1d5820aafeb08c176189d44331e3e2a8030e76e4
  Author: Alex MacLean <amaclean at nvidia.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M llvm/lib/Target/NVPTX/NVPTXAssignValidGlobalNames.cpp
    M llvm/test/CodeGen/NVPTX/symbol-naming.ll

  Log Message:
  -----------
  [NVPTX] improve identifier renaming for PTX (#79459)

Update `NVPTXAssignValidGlobalNames` to convert all characters which are
illegal in PTX identifiers to `_$_`. ([PTX ISA: 4.4
Identifiers](https://docs.nvidia.com/cuda/parallel-thread-execution/index.html#identifiers)).


  Commit: 074630e8af94d839f6baf6378d7ed3d7a6d2753c
      https://github.com/llvm/llvm-project/commit/074630e8af94d839f6baf6378d7ed3d7a6d2753c
  Author: Dave Lee <davelee.com at gmail.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

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

  Log Message:
  -----------
  [lldb] Remove unnecessary suffix from libc++ type name patterns (NFC) (#79644)

The `(( )?&)?` appears to match types which are references. However lldb
can load the
correct data formatters without having to pattern match against a `&`
suffix.

The suffix may have been needed at one point, but it's no longer needed.


  Commit: cfd91199caed12b3f40ab35cf7f6c7fbce38d776
      https://github.com/llvm/llvm-project/commit/cfd91199caed12b3f40ab35cf7f6c7fbce38d776
  Author: Evgenii Kudriashov <evgenii.kudriashov at intel.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86DomainReassignment.cpp
    M llvm/lib/Target/X86/X86FastPreTileConfig.cpp
    M llvm/test/CodeGen/X86/AMX/amx-fastpreconfig.mir
    M llvm/test/CodeGen/X86/domain-reassignment.mir

  Log Message:
  -----------
  [X86] Skip unused VRegs traverse (#78229)

Almost all loops with getNumVirtRegs skip unused registers by means
of reg_nodbg_empty or empty live interval. Except for these two cases
that are revealed by GlobalISel since it can skip RegClass assignment
for unused registers.

Closes #64452, closes #71926


  Commit: 33860b2f61a8a74141ae76ecd54742f9cfeb0d03
      https://github.com/llvm/llvm-project/commit/33860b2f61a8a74141ae76ecd54742f9cfeb0d03
  Author: Jonas Devlieghere <jonas at devlieghere.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M lldb/include/lldb/Utility/ConstString.h
    M lldb/unittests/Utility/ConstStringTest.cpp

  Log Message:
  -----------
  [lldb] Streamline ConstString -> std::string conversion (NFC) (#79649)

Make it easier to go from a ConstString to a std::string without having
to go through a C-String or a llvm::StringRef. I made the conversion
operator explicit as this is a relatively expensive operations (compared
to a StringRef or string_view).


  Commit: 80bfac4327b6fb94cb9bf44eeb0d032799b9d418
      https://github.com/llvm/llvm-project/commit/80bfac4327b6fb94cb9bf44eeb0d032799b9d418
  Author: Jonas Devlieghere <jonas at devlieghere.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M lldb/source/Plugins/SymbolLocator/DebugSymbols/SymbolLocatorDebugSymbols.cpp

  Log Message:
  -----------
  [lldb] Fix progress reporting for SymbolLocatorDebugSymbols (#79624)

This fixes two issues related to the DebugSymbols symbol locator:

1. Only the default symbol locator plugin reports progress. On Darwin,
which uses the DebugSymbols framework we need to report the same
progress form the corresponding SymbolLocator plugin.

2. Forceful dSYM lookups, for example when using `add-dsym`, use a
different code path that currently does not report progress, which is
confusing. Here the progress event can be more specific and specify its
downloading a symbol file rather than just locating it as we'll always
shell out to dsymForUUID or its equivalent.

rdar://121629777


  Commit: 9816863dd439cd60c96d5764c4c21ca1a7f3d8da
      https://github.com/llvm/llvm-project/commit/9816863dd439cd60c96d5764c4c21ca1a7f3d8da
  Author: Ziqing Luo <ziqing at udel.edu>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M clang/include/clang/Analysis/Analyses/UnsafeBufferUsage.h
    M clang/include/clang/Analysis/Analyses/UnsafeBufferUsageGadgets.def
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/lib/Analysis/UnsafeBufferUsage.cpp
    M clang/lib/Sema/AnalysisBasedWarnings.cpp
    A clang/test/SemaCXX/warn-unsafe-buffer-usage-in-container-span-construct.cpp
    M clang/test/SemaCXX/warn-unsafe-buffer-usage-warning-data-invocation.cpp

  Log Message:
  -----------
  [-Wunsafe-buffer-usage] Add a new warning for uses of std::span two-parameter constructors (#77148)

Constructing `std::span` objects with the two parameter constructors
could introduce mismatched bounds information, which defeats the
purpose of using `std::span`.  Therefore, we warn every use of such
constructors.

rdar://115817781


  Commit: 3bece3d72d1323af6b2418b13281e66b583f25b3
      https://github.com/llvm/llvm-project/commit/3bece3d72d1323af6b2418b13281e66b583f25b3
  Author: Min-Yih Hsu <min.hsu at sifive.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M llvm/tools/llvm-exegesis/lib/Assembler.cpp

  Log Message:
  -----------
  [Exegesis] Do not assume the size and layout of the assembled snippet (#79636)

Currently llvm-exegesis assumes that there will only be 3 symbols in the
snippet object, in which the benchmarking function 'foo' is always the
last symbol.

These assumptions do not hold for object file formats of other targets
we support downstream. I think it would be more ideal to generalize this
part of the logics into a simple search on all symbols, as proposed by
this patch.


  Commit: d9a9872ec4760762fdc467ef283cea302a3742e5
      https://github.com/llvm/llvm-project/commit/d9a9872ec4760762fdc467ef283cea302a3742e5
  Author: Cyndy Ishida <cyndy_ishida at apple.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M lld/MachO/InputFiles.cpp
    M llvm/include/llvm/TextAPI/InterfaceFile.h
    M llvm/include/llvm/TextAPI/Symbol.h
    M llvm/include/llvm/TextAPI/SymbolSet.h
    M llvm/lib/Object/TapiFile.cpp
    M llvm/lib/TextAPI/RecordVisitor.cpp
    M llvm/lib/TextAPI/RecordsSlice.cpp
    M llvm/lib/TextAPI/Symbol.cpp
    M llvm/lib/TextAPI/SymbolSet.cpp
    M llvm/lib/TextAPI/TextStub.cpp
    M llvm/lib/TextAPI/TextStubV5.cpp
    M llvm/tools/llvm-ifs/llvm-ifs.cpp
    M llvm/tools/llvm-readtapi/DiffEngine.cpp
    M llvm/tools/llvm-readtapi/DiffEngine.h
    M llvm/unittests/TextAPI/TextStubHelpers.h
    M llvm/unittests/TextAPI/TextStubV1Tests.cpp
    M llvm/unittests/TextAPI/TextStubV2Tests.cpp
    M llvm/unittests/TextAPI/TextStubV3Tests.cpp
    M llvm/unittests/TextAPI/TextStubV4Tests.cpp
    M llvm/unittests/TextAPI/TextStubV5Tests.cpp

  Log Message:
  -----------
  [TextAPI] Rename SymbolKind to EncodeKind (#79622)

A distinction that doesn't _usually_ matter is that the
MachO::SymbolKind is really a mapping of entries in TBD files not
symbols. To better understand this, rename the enum so it represents an
encoding mapped to TBDs as opposed to symbols alone.

For example, it can be a bit confusing that "GlobalSymbol" is a enum
value when all of those values can represent a GlobalSymbol.


  Commit: 2e1e27c7c3212254283edecae6f040272ef88e0f
      https://github.com/llvm/llvm-project/commit/2e1e27c7c3212254283edecae6f040272ef88e0f
  Author: Schrodinger ZHU Yifan <yifanzhu at rochester.edu>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M libc/include/llvm-libc-macros/linux/CMakeLists.txt
    R libc/include/llvm-libc-macros/linux/sys-mman-macros.h
    M libc/include/llvm-libc-macros/sys-mman-macros.h

  Log Message:
  -----------
  [libc] adjust linux's `mman.h` definitions (#79652)

Use definitions from `<linux/mman.h>` to dispatch arch-specific flag
values.
For example, `MCL_CURRENT/MCL_FUTURE/MCL_ONFAULT` are different on
different architectures.


  Commit: c1a155bf785152abc72b77608261a3d0e6c776a6
      https://github.com/llvm/llvm-project/commit/c1a155bf785152abc72b77608261a3d0e6c776a6
  Author: Aiden Grossman <agrossman154 at yahoo.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M llvm/unittests/tools/llvm-exegesis/ClusteringTest.cpp
    M llvm/unittests/tools/llvm-exegesis/Mips/BenchmarkResultTest.cpp
    M llvm/unittests/tools/llvm-exegesis/X86/BenchmarkResultTest.cpp

  Log Message:
  -----------
  [llvm-exegesis] Refactor BenchmarkMeasure instantiation in tests

This patch refactors the instantiation of BenchmarkMeasure within all
the unit tests to use BenchmarkMeasure::Create rather than through
direct struct instantialization. This allows us to change what values
are stored in BenchmarkMeasure without getting compiler warnings on
every instantiation in the unit tests, and is also just a cleanup in
general as the Create function didn't seem to exist at the time the unit
tests were originally written.


  Commit: c9790f8f733f6014fdd8bdacb057c9871e624bcc
      https://github.com/llvm/llvm-project/commit/c9790f8f733f6014fdd8bdacb057c9871e624bcc
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

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

  Log Message:
  -----------
  [IR] Use SmallDenseSet (NFC) (#79556)

The use of SmallDenseSet saves 0.39% of heap allocations during the
compilation of a large preprocessed file, namely X86ISelLowering.cpp,
for the X86 target.  During the experiment, WL.size() was 2 or less
99.9% of the time.  The inline size of 4 should accommodate up to 2
entries at the 3/4 occupancy rate.


  Commit: ff05c3087b4b7e0121125d7f6860b3d9383ca91d
      https://github.com/llvm/llvm-project/commit/ff05c3087b4b7e0121125d7f6860b3d9383ca91d
  Author: Ben Shi <2283975856 at qq.com>
  Date:   2024-01-27 (Sat, 27 Jan 2024)

  Changed paths:
    M clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp
    M clang/test/Analysis/Inputs/system-header-simulator.h
    M clang/test/Analysis/errno-stdlibraryfunctions.c
    M clang/test/Analysis/std-c-library-functions-POSIX.c

  Log Message:
  -----------
  [clang][analyzer] Improve modeling of 'popen' and 'pclose' in StdLibraryFunctionsChecker (#78895)


  Commit: f826f55b2ab68c2515fae751dc2d6ef77f37b172
      https://github.com/llvm/llvm-project/commit/f826f55b2ab68c2515fae751dc2d6ef77f37b172
  Author: Owen Pan <owenpiano at gmail.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

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

  Log Message:
  -----------
  [clang-format] Fix a bug in AnnotatingParser::rParenEndsCast() (#79549)

Fixes #78965.


  Commit: e44d3b3e503fa12fdaead2936b28844aa36237c1
      https://github.com/llvm/llvm-project/commit/e44d3b3e503fa12fdaead2936b28844aa36237c1
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2024-01-27 (Sat, 27 Jan 2024)

  Changed paths:
    M llvm/include/llvm/Analysis/ValueTracking.h
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/test/Transforms/Attributor/nofpclass-implied-by-fcmp.ll

  Log Message:
  -----------
  ValueTracking: Merge fcmpImpliesClass and fcmpToClassTest (#66522)

Rushing this one out before vacation starts. Refactoring on top of
#66505


  Commit: 69f99cd20f9dfcb33502d9376b8cf3ac25086362
      https://github.com/llvm/llvm-project/commit/69f99cd20f9dfcb33502d9376b8cf3ac25086362
  Author: Kai Sasaki <lewuathe at gmail.com>
  Date:   2024-01-27 (Sat, 27 Jan 2024)

  Changed paths:
    M mlir/lib/Conversion/ComplexToStandard/ComplexToStandard.cpp
    M mlir/test/Conversion/ComplexToStandard/convert-to-standard.mlir
    M mlir/test/Conversion/ComplexToStandard/full-conversion.mlir
    M mlir/test/Integration/Dialect/Complex/CPU/correctness.mlir

  Log Message:
  -----------
  [mlir][complex] Prevent underflow in complex.abs (#76316)


  Commit: 701ec45f2fc026d97c3a6262ea0ae6ba6734b304
      https://github.com/llvm/llvm-project/commit/701ec45f2fc026d97c3a6262ea0ae6ba6734b304
  Author: Mikhail Gudim <mgudim at gmail.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp

  Log Message:
  -----------
  [InstCombine] Fix a comment. (#79422)


  Commit: 75952873036fc9989fcf12c526d1a2deaeef596a
      https://github.com/llvm/llvm-project/commit/75952873036fc9989fcf12c526d1a2deaeef596a
  Author: Jonas Devlieghere <jonas at devlieghere.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M lldb/packages/Python/lldbsuite/test/dotest.py
    M lldb/packages/Python/lldbsuite/test/dotest_args.py
    M lldb/packages/Python/lldbsuite/test/lldbtest.py
    M lldb/test/API/CMakeLists.txt
    M lldb/test/API/api/command-return-object/TestSBCommandReturnObject.py
    M lldb/test/API/api/multiple-debuggers/TestMultipleDebuggers.py
    M lldb/test/API/api/multiple-targets/TestMultipleTargets.py
    M lldb/test/API/api/multithreaded/TestMultithreaded.py

  Log Message:
  -----------
  [lldb] Remove obsolete signBinary helper (#79656)

On Darwin, the Makefile already (ad-hoc) signs everything it builds.
There's also no need to use lldb_codesign for this.


  Commit: 5585ddd90b08ecc287e1fb7f765056dc13ccbfe1
      https://github.com/llvm/llvm-project/commit/5585ddd90b08ecc287e1fb7f765056dc13ccbfe1
  Author: Jeremy Kun <2467754+j2kun at users.noreply.github.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

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

  Log Message:
  -----------
  [bazel]: de-alias pybind11 headers target (#79676)

In trying to set up python headers in an out-of-tree bazel MLIR project,
I encountered the `pybind11_bazel` project, and found that the
`@python_runtime` target used here is not defined by it.

Instead, it seems that `@python_runtime` is an alias used in some
projects like Tensorflow (see

https://github.com/tensorflow/tensorflow/blob/322936ffdd96ee59e27d028467fe458859cf3855/third_party/python_runtime/BUILD#L7-L7),
where it is aliased to `@local_config_python`. In fact,
`@local_config_python` is defined by `@pybind11_bazel`, and so it seems
that this layer of indirection no longer serves a purpose, and instead
just prevents anyone who doesn't clone Tensorflow's config from using
the python bindings here.

This commit updates the dependent targets to their canonical de-aliased
equivalents, and I suspect this will not even break any downstream users
since the new target is defined in those projects already.

Without this change, running, for example

```
bazel build @llvm-project//mlir:MLIRBindingsPythonCore
```

gives the error

```
no such package '@python_runtime//': The repository '@python_runtime'
could not be resolved: Repository '@python_runtime' is not defined and
referenced by '@llvm-project//mlir:MLIRBindingsPythonCore'
```

Minimal reproduction in https://github.com/j2kun/test_mlir_bazel_pybind,
which, when pointing to a local LLVM repository that has this change
(see `bazel/import_llvm.bzl` in that repository), results in that build
succeeding.

Hat tip to Maksim Levental for going on an hours-long investigation with
me to figure this out.


  Commit: faef68bca852d08511ea0311d8a0d221cb202e73
      https://github.com/llvm/llvm-project/commit/faef68bca852d08511ea0311d8a0d221cb202e73
  Author: NAKAMURA Takumi <geek4civic at gmail.com>
  Date:   2024-01-27 (Sat, 27 Jan 2024)

  Changed paths:
    M clang/lib/CodeGen/CodeGenPGO.cpp
    M clang/lib/CodeGen/CoverageMappingGen.cpp

  Log Message:
  -----------
  Revert "[Coverage] Map regions from system headers (#76950)"

See #78920.

This reverts commit ce3e767ac5ea1a1d1a166e88c152e2125ec7662b.


  Commit: e8f882f83acf30d9b4da8846bd26314139660430
      https://github.com/llvm/llvm-project/commit/e8f882f83acf30d9b4da8846bd26314139660430
  Author: Sam James <sam at gentoo.org>
  Date:   2024-01-27 (Sat, 27 Jan 2024)

  Changed paths:
    M compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_report.cpp

  Log Message:
  -----------
  [sanitizer] Handle Gentoo's libstdc++ path

On Gentoo, libc++ is indeed in /usr/include/c++/*, but libstdc++ is at
e.g. /usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14.

Use '/include/g++' as it should be unique enough. Note that the omission of
a trailing slash is intentional to match g++-*.

See https://github.com/llvm/llvm-project/pull/78534#issuecomment-1904145839.

Reviewed by: mgorny
Closes: https://github.com/llvm/llvm-project/pull/79264

Signed-off-by: Sam James <sam at gentoo.org>


  Commit: 6e6c506f3caeafc25925b811b9cd205e2e213dd6
      https://github.com/llvm/llvm-project/commit/6e6c506f3caeafc25925b811b9cd205e2e213dd6
  Author: Younan Zhang <zyn7109 at gmail.com>
  Date:   2024-01-27 (Sat, 27 Jan 2024)

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

  Log Message:
  -----------
  [Concepts] Traverse the instantiation chain for parameter injection inside a constraint scope (#79568)

We preserve the trailing requires-expression during the lambda
expression transformation. In order to get those referenced parameters
inside a requires-expression properly resolved to the instantiated
decls, we intended to inject these 'original' `ParmVarDecls` to the
current instantiaion scope, at `Sema::SetupConstraintScope`.

The previous approach seems to overlook nested instantiation chains,
leading to the crash within a nested lambda followed by a requires
clause.

This fixes https://github.com/llvm/llvm-project/issues/73418.


  Commit: 2b00d449d2ed09cd0364038115f90a3eb4fd15b5
      https://github.com/llvm/llvm-project/commit/2b00d449d2ed09cd0364038115f90a3eb4fd15b5
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M clang-tools-extra/clang-doc/HTMLGenerator.cpp
    M clang-tools-extra/clang-doc/Representation.cpp
    M clang-tools-extra/clang-doc/tool/ClangDocMain.cpp
    M clang-tools-extra/clang-include-fixer/find-all-symbols/PathConfig.cpp
    M clang-tools-extra/clang-move/Move.cpp
    M clang-tools-extra/clang-move/tool/ClangMove.cpp
    M clang-tools-extra/clang-tidy/utils/HeaderGuard.cpp
    M clang-tools-extra/modularize/ModularizeUtilities.cpp

  Log Message:
  -----------
  [clang-tools-extra] Use SmallString::operator std::string (NFC)


  Commit: ac0b6016af5a00865ce0c3b4f1d007f8ac96b8eb
      https://github.com/llvm/llvm-project/commit/ac0b6016af5a00865ce0c3b4f1d007f8ac96b8eb
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

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

  Log Message:
  -----------
  [Analysis] Use llvm::succ_empty and llvm::successors (NFC)


  Commit: f2e69d2e85463b5c415d5597a59cf41671c15c70
      https://github.com/llvm/llvm-project/commit/f2e69d2e85463b5c415d5597a59cf41671c15c70
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

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

  Log Message:
  -----------
  [CodeGen] Use a range-based for loop (NFC)


  Commit: fe35d72d8e248f1d29f9c5e503463bb1c4d6f8c6
      https://github.com/llvm/llvm-project/commit/fe35d72d8e248f1d29f9c5e503463bb1c4d6f8c6
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

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

  Log Message:
  -----------
  [Driver] Use StringRef::consume_back (NFC)


  Commit: 499507fdec8eb37dc68cee6c2b6c75557b28024e
      https://github.com/llvm/llvm-project/commit/499507fdec8eb37dc68cee6c2b6c75557b28024e
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-01-27 (Sat, 27 Jan 2024)

  Changed paths:
    M clang/lib/AST/Interp/ByteCodeExprGen.h

  Log Message:
  -----------
  [clang][Interp][NFC] Remove unused function


  Commit: ce75cbeda21e3e4e5d0c47ecf44954caf98acfe8
      https://github.com/llvm/llvm-project/commit/ce75cbeda21e3e4e5d0c47ecf44954caf98acfe8
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-01-27 (Sat, 27 Jan 2024)

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

  Log Message:
  -----------
  [clang][Interp][NFC] Don't unnecessarily use std::optional

classifyComplexElementType() doesn't return a std::optional anymore.


  Commit: 1f13203029333ac99cc9844b8b6915aae3fc0902
      https://github.com/llvm/llvm-project/commit/1f13203029333ac99cc9844b8b6915aae3fc0902
  Author: Aiden Grossman <agrossman154 at yahoo.com>
  Date:   2024-01-27 (Sat, 27 Jan 2024)

  Changed paths:
    M llvm/utils/mlgo-utils/mlgo/__init__.py

  Log Message:
  -----------
  [MLGO] Bump mlgo-utils version to 19.0.0

This patch bumps the mlgo-utils version to 19.0.0 as 18.0.0 got branched
recently.


  Commit: ad1a65fcacda8794e2f1fa3e1dec1c1b7813422c
      https://github.com/llvm/llvm-project/commit/ad1a65fcacda8794e2f1fa3e1dec1c1b7813422c
  Author: cor3ntin <corentinjabot at gmail.com>
  Date:   2024-01-27 (Sat, 27 Jan 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang-c/Index.h
    M clang/include/clang/AST/ASTContext.h
    M clang/include/clang/AST/ASTNodeTraverser.h
    M clang/include/clang/AST/ComputeDependence.h
    M clang/include/clang/AST/ExprCXX.h
    M clang/include/clang/AST/RecursiveASTVisitor.h
    M clang/include/clang/AST/Type.h
    M clang/include/clang/AST/TypeLoc.h
    M clang/include/clang/AST/TypeProperties.td
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/include/clang/Basic/Specifiers.h
    M clang/include/clang/Basic/StmtNodes.td
    M clang/include/clang/Basic/TokenKinds.def
    M clang/include/clang/Basic/TypeNodes.td
    M clang/include/clang/Parse/Parser.h
    M clang/include/clang/Sema/DeclSpec.h
    M clang/include/clang/Sema/Sema.h
    M clang/include/clang/Serialization/ASTBitCodes.h
    M clang/include/clang/Serialization/TypeBitCodes.def
    M clang/lib/AST/ASTContext.cpp
    M clang/lib/AST/ASTImporter.cpp
    M clang/lib/AST/ASTStructuralEquivalence.cpp
    M clang/lib/AST/ComputeDependence.cpp
    M clang/lib/AST/Expr.cpp
    M clang/lib/AST/ExprCXX.cpp
    M clang/lib/AST/ExprClassification.cpp
    M clang/lib/AST/ExprConstant.cpp
    M clang/lib/AST/ItaniumMangle.cpp
    M clang/lib/AST/MicrosoftMangle.cpp
    M clang/lib/AST/StmtPrinter.cpp
    M clang/lib/AST/StmtProfile.cpp
    M clang/lib/AST/Type.cpp
    M clang/lib/AST/TypePrinter.cpp
    M clang/lib/CodeGen/CGDebugInfo.cpp
    M clang/lib/CodeGen/CGExpr.cpp
    M clang/lib/CodeGen/CGExprAgg.cpp
    M clang/lib/CodeGen/CGExprComplex.cpp
    M clang/lib/CodeGen/CGExprConstant.cpp
    M clang/lib/CodeGen/CGExprScalar.cpp
    M clang/lib/CodeGen/CodeGenFunction.cpp
    M clang/lib/Parse/ParseCXXInlineMethods.cpp
    M clang/lib/Parse/ParseDecl.cpp
    M clang/lib/Parse/ParseDeclCXX.cpp
    M clang/lib/Parse/ParseExpr.cpp
    M clang/lib/Parse/ParseExprCXX.cpp
    M clang/lib/Parse/ParseTentative.cpp
    M clang/lib/Parse/Parser.cpp
    M clang/lib/Sema/DeclSpec.cpp
    M clang/lib/Sema/SemaCXXScopeSpec.cpp
    M clang/lib/Sema/SemaDecl.cpp
    M clang/lib/Sema/SemaDeclCXX.cpp
    M clang/lib/Sema/SemaExceptionSpec.cpp
    M clang/lib/Sema/SemaExpr.cpp
    M clang/lib/Sema/SemaExprCXX.cpp
    M clang/lib/Sema/SemaTemplate.cpp
    M clang/lib/Sema/SemaTemplateDeduction.cpp
    M clang/lib/Sema/SemaTemplateVariadic.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/StaticAnalyzer/Core/ExprEngine.cpp
    M clang/test/AST/ast-dump-templates.cpp
    M clang/test/CXX/dcl.decl/dcl.meaning/dcl.fct/p13.cpp
    A clang/test/PCH/pack_indexing.cpp
    M clang/test/Parser/cxx0x-ambig.cpp
    M clang/test/Parser/cxx0x-decl.cpp
    A clang/test/Parser/cxx2c-pack-indexing.cpp
    A clang/test/SemaCXX/cxx2c-pack-indexing-ext-diags.cpp
    A clang/test/SemaCXX/cxx2c-pack-indexing.cpp
    M clang/tools/libclang/CIndex.cpp
    M clang/tools/libclang/CXCursor.cpp
    M clang/www/cxx_status.html

  Log Message:
  -----------
  [Clang][C++26] Implement Pack Indexing (P2662R3). (#72644)

Implements https://isocpp.org/files/papers/P2662R3.pdf

The feature is exposed as an extension in older language modes.
Mangling is not yet supported and that is something we will have to do before release.


  Commit: 7fcba000e90b85ce1236a1d43bebb8128332580e
      https://github.com/llvm/llvm-project/commit/7fcba000e90b85ce1236a1d43bebb8128332580e
  Author: Gábor Spaits <48805437+spaits at users.noreply.github.com>
  Date:   2024-01-27 (Sat, 27 Jan 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/Sema/SemaTemplateDeduction.cpp
    M clang/test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.call/p1-0x.cpp
    M clang/test/SemaTemplate/deduction.cpp

  Log Message:
  -----------
  [Sema] Substitute parameter packs when deduced from function arguments (#79371)

This pull request would solve
https://github.com/llvm/llvm-project/issues/78449 .
There is also a discussion about this on stackoverflow:
https://stackoverflow.com/questions/77832658/stdtype-identity-to-support-several-variadic-argument-lists
.

The following program is well formed:
```cpp
#include <type_traits>

template <typename... T>
struct args_tag
{
    using type = std::common_type_t<T...>;
};

template <typename... T>
void bar(args_tag<T...>, std::type_identity_t<T>..., int, std::type_identity_t<T>...) {}

// example
int main() {
    bar(args_tag<int, int>{}, 4, 8, 15, 16, 23);
}
```

but Clang rejects it, while GCC and MSVC doesn't. The reason for this is
that, in `Sema::DeduceTemplateArguments` we are not prepared for this
case.

# Substitution/deduction of parameter packs
The logic that handles substitution when we have explicit template
arguments (`SubstituteExplicitTemplateArguments`) does not work here,
since the types of the pack are not pushed to `ParamTypes` before the
loop starts that does the deduction.
The other "candidate" that may could have handle this case would be the
loop that does the deduction for trailing packs, but we are not dealing
with trailing packs here.

# Solution proposed in this PR
The solution proposed in this PR works similar to the trailing pack
deduction. The main difference here is the end of the deduction cycle.
When a non-trailing template pack argument is found, whose type is not
explicitly specified and the next type is not a pack type, the length of
the previously deduced pack is retrieved (let that length be `s`). After
that the next `s` arguments are processed in the same way as in the case
of non trailing packs.

# Another possible solution
There is another possible approach that would be less efficient. In the
loop when we get to an element of `ParamTypes` that is a pack and could
be substituted because the type is deduced from a previous argument,
then `s` number of arg types would be inserted before the current
element of `ParamTypes` type. Then we would "cancel" the processing of
the current element, first process the previously inserted elements and
the after that re-process the current element.
Basically we would do what `SubstituteExplicitTemplateArguments` does
but during deduction.

# Adjusted test cases
In
`clang/test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.call/p1-0x.cpp`
there is a test case named `test_pack_not_at_end` that should work, but
still does not. This test case is relevant because the note for the
error message has changed.
This is what the test case looks like currently:
```cpp
template<typename ...Types>
void pack_not_at_end(tuple<Types...>, Types... values, int); // expected-note {{<int *, double *> vs. <int, int>}}

void test_pack_not_at_end(tuple<int*, double*> t2) {
  pack_not_at_end(t2, 0, 0, 0); // expected-error {{no match}}
  // FIXME: Should the "original argument type must match deduced parameter
  // type" rule apply here?
  pack_not_at_end<int*, double*>(t2, 0, 0, 0); // ok
}

```

The previous note said (before my changes):
```
deduced conflicting types for parameter 'Types' (<int *, double *> vs. <>)
````
The current note says (after my changesand also clang 14 would say this
if the pack was not trailing):
```
deduced conflicting types for parameter 'Types' (<int *, double *> vs. <int, int>)
```
GCC says: 
```
error: no matching function for call to ‘pack_not_at_end(std::tuple<int*, double*>&, int, int, int)’
   70 |     pack_not_at_end(t2, 0, 0, 9); // expected-error {{no match}}
````

---------

Co-authored-by: cor3ntin <corentinjabot at gmail.com>
Co-authored-by: Erich Keane <ekeane at nvidia.com>


  Commit: bc5c151348a1efb392b25153dfa73ddd7ee06d3f
      https://github.com/llvm/llvm-project/commit/bc5c151348a1efb392b25153dfa73ddd7ee06d3f
  Author: cor3ntin <corentinjabot at gmail.com>
  Date:   2024-01-27 (Sat, 27 Jan 2024)

  Changed paths:
    M libcxx/test/libcxx/gdb/gdb_pretty_printer_test.sh.cpp

  Log Message:
  -----------
  Disable gdb_pretty_printer_test.sh.cpp for clang 19

As it breaks buildkite CI


  Commit: 608d602842393fc4c0b1463181a827cfc91f5bf1
      https://github.com/llvm/llvm-project/commit/608d602842393fc4c0b1463181a827cfc91f5bf1
  Author: Kristof Beyls <kristof.beyls at llvm.org>
  Date:   2024-01-27 (Sat, 27 Jan 2024)

  Changed paths:
    M llvm/docs/CodeOfConduct.rst
    M llvm/docs/DeveloperPolicy.rst

  Log Message:
  -----------
  [DevPolicy] Add guidance on bans  (#69701)


  Commit: 3855757f98935208d7d0481af01a474139de9519
      https://github.com/llvm/llvm-project/commit/3855757f98935208d7d0481af01a474139de9519
  Author: Chia <sun1011jacobi at gmail.com>
  Date:   2024-01-27 (Sat, 27 Jan 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
    A llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vwadd-mask.ll

  Log Message:
  -----------
  [RISCV][ISel] Remove redundant vmerge for the vwadd. (#78403)

This patch is aiming at resolving the below missed-optimization case. 

### Code
```
define <8 x i64> @vwadd_mask_v8i32(<8 x i32> %x, <8 x i64> %y) {
    %mask = icmp slt <8 x i32> %x, <i32 42, i32 42, i32 42, i32 42, i32 42, i32 42, i32 42, i32 42>
    %a = select <8 x i1> %mask, <8 x i32> %x, <8 x i32> zeroinitializer
    %sa = sext <8 x i32> %a to <8 x i64>
    %ret = add <8 x i64> %sa, %y
    ret <8 x i64> %ret
}
```

### Before this patch
[Compiler Explorer](https://godbolt.org/z/cd1bKTrx6)
```
vwadd_mask_v8i32:
        li      a0, 42
        vsetivli        zero, 8, e32, m2, ta, ma
        vmslt.vx        v0, v8, a0
        vmv.v.i v10, 0
        vmerge.vvm      v16, v10, v8, v0
        vwadd.wv        v8, v12, v16
        ret
```

### After this patch
```
vwadd_mask_v8i32:
        li a0, 42
        vsetivli zero, 8, e32, m2, ta, ma
        vmslt.vx v0, v8, a0
        vsetvli zero, zero, e32, m2, tu, mu
        vwadd.wv v12, v12, v8, v0.t
        vmv4r.v v8, v12
        ret
```
This pattern could be found in a reduction with a widening destination

Specifically, we first do a fold like `(vwadd.wv y, (vmerge cond, x, 0))
-> (vwadd.wv y, x, y, cond)`, then do pattern matching on it.


  Commit: f882eb49860cea4d5cfb76a7bbbfa45d04a4ac00
      https://github.com/llvm/llvm-project/commit/f882eb49860cea4d5cfb76a7bbbfa45d04a4ac00
  Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
  Date:   2024-01-27 (Sat, 27 Jan 2024)

  Changed paths:
    M flang/lib/Lower/OpenMP.cpp
    A flang/test/Lower/OpenMP/FIR/map-component-ref.f90
    A flang/test/Lower/OpenMP/map-component-ref.f90

  Log Message:
  -----------
  [Flang][OpenMP] Skip component symbols when creating extended values (#79657)

The `map` clause in OpenMP allows structure components to be specified
(unlike other clauses). Structure components do get their own symbols,
but these are not meant to be instantiated.

When a component reference is passed as an argument to the omp.target
op, it gets a corresponding parameter in the target op's entry block.
The original symbols are then bound to the same kind of an extended
value as before, but the value is now based on the parameters.

To handle structure components more gracefully, put their symbols on the
list of mapped objects, but skip them when creating extended values.

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


  Commit: 3e29e520779a863fbc30fd86cf1cb6d2ed398101
      https://github.com/llvm/llvm-project/commit/3e29e520779a863fbc30fd86cf1cb6d2ed398101
  Author: Jie Fu <jiefu at tencent.com>
  Date:   2024-01-27 (Sat, 27 Jan 2024)

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

  Log Message:
  -----------
  [RISCV] Fix -Wunused-variable in RISCVISelLowering.cpp (NFC)

llvm-project/llvm/lib/Target/RISCV/RISCVISelLowering.cpp:13754:12:
error: unused variable 'Opc' [-Werror,-Wunused-variable]
  unsigned Opc = N->getOpcode();
           ^
1 error generated.


  Commit: ec402a2e532db7ec38e6aef0ed1b1c04c6769d9b
      https://github.com/llvm/llvm-project/commit/ec402a2e532db7ec38e6aef0ed1b1c04c6769d9b
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-01-27 (Sat, 27 Jan 2024)

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

  Log Message:
  -----------
  [VPlan] Implement cloning of VPlans. (#73158)

This patch implements cloning for VPlans and recipes. Cloning is used in
the epilogue vectorization path, to clone the VPlan for the main vector
loop. This means we won't re-use a VPlan when executing the VPlan for
the epilogue vector loop, which in turn will enable us to perform
optimizations based on UF & VF.


  Commit: 143b510a8fefb0d203c9ac7e036aa9967dd8a2ef
      https://github.com/llvm/llvm-project/commit/143b510a8fefb0d203c9ac7e036aa9967dd8a2ef
  Author: Corentin Jabot <corentinjabot at gmail.com>
  Date:   2024-01-27 (Sat, 27 Jan 2024)

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

  Log Message:
  -----------
  [Clang] Fix asan error after ad1a65fca

Annotating tokens can invalid the stack of Peaked tokens.


  Commit: 57a20d2d09bbd3cc501fc6d8b4746be2040c99b7
      https://github.com/llvm/llvm-project/commit/57a20d2d09bbd3cc501fc6d8b4746be2040c99b7
  Author: cor3ntin <corentinjabot at gmail.com>
  Date:   2024-01-27 (Sat, 27 Jan 2024)

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

  Log Message:
  -----------
  [LLDB] Default implementation for pack indexing types. (#79695)

We do not handle pack indexing types (added by yet #72644) but we add them to some switch
statement to ensure CI builds do not fail.


  Commit: 863b2c84c0fbcfb02d969fa36af4932d410a827b
      https://github.com/llvm/llvm-project/commit/863b2c84c0fbcfb02d969fa36af4932d410a827b
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-01-27 (Sat, 27 Jan 2024)

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

  Log Message:
  -----------
  [DAGCombiner] Use SmallDenseMap (NFC) (#79681)

The use of SmallDenseMap saves 0.48% of heap allocations during the
compilation of a large preprocessed file, namely X86ISelLowering.cpp,
for the X86 target.  During the experiment, the maximum size of
WorklistMap was 24 or less 74% of the time.  (Note that DenseMap has
the maximum occupancy rate of 3/4.)


  Commit: 718aac9f7a19227b5c5ec85819a3a5ae24ce32e1
      https://github.com/llvm/llvm-project/commit/718aac9f7a19227b5c5ec85819a3a5ae24ce32e1
  Author: Timm Baeder <tbaeder at redhat.com>
  Date:   2024-01-27 (Sat, 27 Jan 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/Frontend/TextDiagnostic.h
    M clang/include/clang/Lex/Preprocessor.h
    M clang/lib/Frontend/TextDiagnostic.cpp
    M clang/lib/Frontend/TextDiagnosticPrinter.cpp
    M clang/lib/Lex/Preprocessor.cpp
    A clang/test/Frontend/diagnostic-pipe.c

  Log Message:
  -----------
  [clang][Diagnostics] Highlight code snippets (#66514)

Add some primitive syntax highlighting to our code snippet output.

This adds "checkpoints" to the Preprocessor, which we can use to start lexing from. When printing a code snippet, we lex from the nearest checkpoint and highlight the tokens based on their token type.


  Commit: 34dd8ec8aec17965313b17308faaa6272c235c53
      https://github.com/llvm/llvm-project/commit/34dd8ec8aec17965313b17308faaa6272c235c53
  Author: Jonas Paulsson <paulson1 at linux.ibm.com>
  Date:   2024-01-27 (Sat, 27 Jan 2024)

  Changed paths:
    M clang/include/clang/AST/ASTContext.h
    M clang/include/clang/Basic/TargetInfo.h
    M clang/include/clang/Driver/Options.td
    M clang/lib/AST/ASTContext.cpp
    M clang/lib/Basic/Targets/AArch64.cpp
    M clang/lib/Basic/Targets/AArch64.h
    M clang/lib/Basic/Targets/CSKY.cpp
    M clang/lib/Basic/Targets/CSKY.h
    M clang/lib/Basic/Targets/NVPTX.cpp
    M clang/lib/Basic/Targets/SPIR.h
    M clang/lib/Basic/Targets/SystemZ.cpp
    M clang/lib/Basic/Targets/SystemZ.h
    M clang/lib/CodeGen/CodeGenModule.cpp
    M clang/lib/Driver/ToolChains/Arch/SystemZ.cpp
    M clang/lib/Sema/SemaOpenMP.cpp
    A clang/test/CodeGen/SystemZ/unaligned-symbols.c
    M llvm/lib/Target/SystemZ/SystemZFeatures.td

  Log Message:
  -----------
  [clang, SystemZ] Support -munaligned-symbols (#73511)

When this option is passed to clang, external (and/or weak) symbols
are not assumed to have the minimum ABI alignment normally required.
Symbols defined locally that are not weak are however still given the
minimum alignment.

This is implemented by passing a new parameter to getMinGlobalAlign()
named HasNonWeakDef that is used to return the right alignment value.

This is needed when external symbols created from a linker script may
not get the ABI minimum alignment and must therefore be treated as
unaligned by the compiler.


  Commit: 54149217b5a1212fcf1864cb16208c112c189b39
      https://github.com/llvm/llvm-project/commit/54149217b5a1212fcf1864cb16208c112c189b39
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-01-27 (Sat, 27 Jan 2024)

  Changed paths:
    M llvm/lib/MC/MCAsmStreamer.cpp

  Log Message:
  -----------
  [MC] Use StringRef::consume_back (NFC)


  Commit: f1cee6b0baac943bdc3f329feddd1bf0731a5a0e
      https://github.com/llvm/llvm-project/commit/f1cee6b0baac943bdc3f329feddd1bf0731a5a0e
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-01-27 (Sat, 27 Jan 2024)

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

  Log Message:
  -----------
  [Transforms] Use a range-based for loop (NFC)


  Commit: 03cba44029cc78b9ef86c4e2aac0453ebab473ae
      https://github.com/llvm/llvm-project/commit/03cba44029cc78b9ef86c4e2aac0453ebab473ae
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-01-27 (Sat, 27 Jan 2024)

  Changed paths:
    M bolt/lib/RuntimeLibs/RuntimeLibrary.cpp

  Log Message:
  -----------
  [BOLT] Use SmallString::operator std::string (NFC)


  Commit: 19146b97127157bda97ad87b94f3c4c9bf7e81d4
      https://github.com/llvm/llvm-project/commit/19146b97127157bda97ad87b94f3c4c9bf7e81d4
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-01-27 (Sat, 27 Jan 2024)

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

  Log Message:
  -----------
  [Analysis] Simplify a StringRef comparison (NFC)


  Commit: e976053a63c251e9b65733ed3574e5c3de62084c
      https://github.com/llvm/llvm-project/commit/e976053a63c251e9b65733ed3574e5c3de62084c
  Author: Jonas Paulsson <paulson1 at linux.ibm.com>
  Date:   2024-01-27 (Sat, 27 Jan 2024)

  Changed paths:
    M clang/test/CodeGen/SystemZ/unaligned-symbols.c

  Log Message:
  -----------
  [clang, SystemZ] Fix test case for buildbot.

It seems the automatic Value naming starts on %1 instead of %0 sometimes.


  Commit: 517063e0f3d3387babc500b112aaa90b5c42da38
      https://github.com/llvm/llvm-project/commit/517063e0f3d3387babc500b112aaa90b5c42da38
  Author: Schrodinger ZHU Yifan <yifanzhu at rochester.edu>
  Date:   2024-01-27 (Sat, 27 Jan 2024)

  Changed paths:
    M libc/cmake/modules/LLVMLibCFlagRules.cmake
    M libc/cmake/modules/LLVMLibCObjectRules.cmake
    M libc/src/__support/HashTable/CMakeLists.txt
    M libc/src/__support/HashTable/bitmask.h

  Log Message:
  -----------
  [libc] change PREFER_GENERIC to EXPLICIT_SIMD_OPT (#79486)

fixes #79474.


  Commit: 7c03d5d41daad230406890499cf4fa14973ee5eb
      https://github.com/llvm/llvm-project/commit/7c03d5d41daad230406890499cf4fa14973ee5eb
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-01-27 (Sat, 27 Jan 2024)

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

  Log Message:
  -----------
  [VPlan] Use unique_ptr to clean up duplicated plan.


  Commit: 53fea6fd6f228eb1dbd282b8d076af545dcd8228
      https://github.com/llvm/llvm-project/commit/53fea6fd6f228eb1dbd282b8d076af545dcd8228
  Author: Tom Stellard <tstellar at redhat.com>
  Date:   2024-01-27 (Sat, 27 Jan 2024)

  Changed paths:
    M .github/workflows/llvm-project-tests.yml
    M .github/workflows/llvm-tests.yml

  Log Message:
  -----------
  workflows: Merge LLVM tests together into a single job (#78877)

This is possible now that the free GitHub runners for Windows and Linux
have more disk space:

https://github.blog/2024-01-17-github-hosted-runners-double-the-power-for-open-source/

I also had to switch from macOS-11 to macOS-13 in order to prevent the
job from timing out. macOS-13 runners have 4 vCPUs and the macOS-11
runners only have 3.


  Commit: 927919ac34a2085a7a25814fea492ac462b0d4ac
      https://github.com/llvm/llvm-project/commit/927919ac34a2085a7a25814fea492ac462b0d4ac
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-01-27 (Sat, 27 Jan 2024)

  Changed paths:
    M llvm/tools/llvm-cov/CodeCoverage.cpp
    M llvm/tools/llvm-cov/SourceCoverageView.cpp
    M llvm/tools/llvm-cov/SourceCoverageView.h

  Log Message:
  -----------
  [llvm-cov] Simplify branch/MCDC subviews. NFC

Remove unneeded empty check and reundant copies. NFC


  Commit: 7c3ee7cbe6419ea5e37ce2723cc1a1688380581f
      https://github.com/llvm/llvm-project/commit/7c3ee7cbe6419ea5e37ce2723cc1a1688380581f
  Author: Shengchen Kan <shengchen.kan at intel.com>
  Date:   2024-01-28 (Sun, 28 Jan 2024)

  Changed paths:
    M llvm/include/llvm/Support/X86FoldTablesUtils.h
    M llvm/lib/Target/X86/X86InstrAVX512.td
    M llvm/lib/Target/X86/X86InstrFoldTables.cpp
    M llvm/test/TableGen/x86-fold-tables.inc
    M llvm/utils/TableGen/X86FoldTablesEmitter.cpp

  Log Message:
  -----------
  [X86][tablgen] Fix the broadcast tables (#79675)


  Commit: 6754b5428e7ddb278f03b23e8306f3d5936373e1
      https://github.com/llvm/llvm-project/commit/6754b5428e7ddb278f03b23e8306f3d5936373e1
  Author: Shengchen Kan <shengchen.kan at intel.com>
  Date:   2024-01-28 (Sun, 28 Jan 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86InstrInfo.cpp
    M llvm/lib/Target/X86/X86InstrInfo.h

  Log Message:
  -----------
  [X86][NFC] AnalyzeBranchImpl -> analyzeBranchImpl and remove duplicated comments in X86InstrInfo.h


  Commit: 7089c012ec08450b1d8050b6b1d85a00505aa51a
      https://github.com/llvm/llvm-project/commit/7089c012ec08450b1d8050b6b1d85a00505aa51a
  Author: Shengchen Kan <shengchen.kan at intel.com>
  Date:   2024-01-28 (Sun, 28 Jan 2024)

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

  Log Message:
  -----------
  [X86][NFC] Replace if-else with switch-case in X86InstrInfo::foldMemoryOperandImpl


  Commit: 5a5ce012e4de627c52efa1638993fd23c5e74afa
      https://github.com/llvm/llvm-project/commit/5a5ce012e4de627c52efa1638993fd23c5e74afa
  Author: Amir Ayupov <aaupov at fb.com>
  Date:   2024-01-27 (Sat, 27 Jan 2024)

  Changed paths:
    M clang/CMakeLists.txt
    M clang/cmake/caches/BOLT.cmake
    M clang/utils/perf-training/CMakeLists.txt
    M clang/utils/perf-training/bolt.lit.cfg
    M clang/utils/perf-training/bolt.lit.site.cfg.in
    M clang/utils/perf-training/perf-helper.py

  Log Message:
  -----------
  Reland [Clang][CMake] Support perf, LBR, and Instrument CLANG_BOLT options (#69133)

This reverts commit 6953b367027e4234607a6718a0a1d57eb52ef57e.

Couldn't reproduce cmake issues from any of the affected buildbots:
https://lab.llvm.org/buildbot/#/builders/139/builds/57628
https://lab.llvm.org/buildbot/#/builders/163/builds/50270
https://lab.llvm.org/buildbot/#/builders/223/builds/34823
https://lab.llvm.org/buildbot/#/builders/225/builds/29950
https://lab.llvm.org/buildbot/#/builders/245/builds/19468

A common trait is that these builders don't clean build directory.
Push again and monitor these builders.


  Commit: c41bb1120f6628f94119229ad2e7b93062a3e443
      https://github.com/llvm/llvm-project/commit/c41bb1120f6628f94119229ad2e7b93062a3e443
  Author: Mehdi Amini <joker.eph at gmail.com>
  Date:   2024-01-27 (Sat, 27 Jan 2024)

  Changed paths:
    M mlir/lib/Conversion/ComplexToStandard/ComplexToStandard.cpp
    M mlir/test/Conversion/ComplexToStandard/convert-to-standard.mlir
    M mlir/test/Conversion/ComplexToStandard/full-conversion.mlir
    M mlir/test/Integration/Dialect/Complex/CPU/correctness.mlir

  Log Message:
  -----------
  Revert "[mlir][complex] Prevent underflow in complex.abs" (#79722)

Reverts llvm/llvm-project#76316

Buildbot test is broken.


  Commit: faf555f93f3628b7b2b64162c02dd1474540532e
      https://github.com/llvm/llvm-project/commit/faf555f93f3628b7b2b64162c02dd1474540532e
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-01-27 (Sat, 27 Jan 2024)

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

  Log Message:
  -----------
  Revert "[DAGCombiner] Use SmallDenseMap (NFC) (#79681)"

This reverts commit 863b2c84c0fbcfb02d969fa36af4932d410a827b.

A compile-time regression has been reported:

https://github.com/llvm/llvm-project/pull/79681#issuecomment-1913325915


  Commit: 179ade6a6d78533179205640dd161bf179daa9ee
      https://github.com/llvm/llvm-project/commit/179ade6a6d78533179205640dd161bf179daa9ee
  Author: Owen Pan <owenpiano at gmail.com>
  Date:   2024-01-27 (Sat, 27 Jan 2024)

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

  Log Message:
  -----------
  [clang-format] Fix an issue reported by static analyzer

Fixes #79685.


  Commit: c70d3874e95ba24d7f1f9e69102db8916d9c41f1
      https://github.com/llvm/llvm-project/commit/c70d3874e95ba24d7f1f9e69102db8916d9c41f1
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-01-27 (Sat, 27 Jan 2024)

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

  Log Message:
  -----------
  [ADT] Remove makeArrayRef and makeMutableArrayRef (#79719)

These have been deprecated since:

  commit 36117cc46388d677359f1180bd536f80d0c5fe97
  Author: serge-sans-paille <sguelton at mozilla.com>
  Date:   Tue Jan 10 11:49:15 2023 +0100

  commit c4b39cd09c4eeef2b3e3d32cb674f92c17eeb517
  Author: Joe Loser <joeloser at fastmail.com>
  Date:   Mon Jan 16 14:52:16 2023 -0700


  Commit: 5f4c89edd0ade97ab3e2d6df5375974f4b975d58
      https://github.com/llvm/llvm-project/commit/5f4c89edd0ade97ab3e2d6df5375974f4b975d58
  Author: Rageking8 <106309953+Rageking8 at users.noreply.github.com>
  Date:   2024-01-27 (Sat, 27 Jan 2024)

  Changed paths:
    M clang/test/Analysis/additive-op-on-sym-int-expr.c
    M llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTypeUtilities.h
    M llvm/test/MC/AArch64/neon-diagnostics.s
    M llvm/test/MC/AArch64/neon-scalar-shift-imm.s
    M llvm/test/MC/Disassembler/AArch64/neon-instructions.txt
    M mlir/docs/Dialects/Linalg/OpDSL.md
    M mlir/python/mlir/dialects/linalg/opdsl/lang/comprehension.py

  Log Message:
  -----------
  Fix unsigned typos (#76670)


  Commit: 8f8cab6b7849944e5d1a9ddb773d0be851da6503
      https://github.com/llvm/llvm-project/commit/8f8cab6b7849944e5d1a9ddb773d0be851da6503
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-01-27 (Sat, 27 Jan 2024)

  Changed paths:
    M llvm/lib/IR/ProfDataUtils.cpp
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/lib/Target/AMDGPU/SIAnnotateControlFlow.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp

  Log Message:
  -----------
  [llvm] Use Instruction::hasMetadata (NFC)


  Commit: d6ad67df6bdd1e49f4f57ae8dfa1b05daf081c6e
      https://github.com/llvm/llvm-project/commit/d6ad67df6bdd1e49f4f57ae8dfa1b05daf081c6e
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-01-27 (Sat, 27 Jan 2024)

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

  Log Message:
  -----------
  [clang-tidy] Use StringRef::consume_back (NFC)


  Commit: 687136e7cd2ba897dc1f3688af6db58549ab95f2
      https://github.com/llvm/llvm-project/commit/687136e7cd2ba897dc1f3688af6db58549ab95f2
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-01-27 (Sat, 27 Jan 2024)

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

  Log Message:
  -----------
  [Transforms] Use a range-based for loop (NFC)


  Commit: 7d7f358cee659564358904584a871facfd5f765b
      https://github.com/llvm/llvm-project/commit/7d7f358cee659564358904584a871facfd5f765b
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-01-27 (Sat, 27 Jan 2024)

  Changed paths:
    M llvm/tools/llvm-profdata/llvm-profdata.cpp

  Log Message:
  -----------
  [llvm-profdata] Simplify a string equality comparison (NFC)


  Commit: 5abbb7b5d038c62d3dc37ac8a2d7d57deebac0c7
      https://github.com/llvm/llvm-project/commit/5abbb7b5d038c62d3dc37ac8a2d7d57deebac0c7
  Author: Shengchen Kan <shengchen.kan at intel.com>
  Date:   2024-01-28 (Sun, 28 Jan 2024)

  Changed paths:
    M llvm/test/CodeGen/X86/vector-interleaved-load-i16-stride-2.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i16-stride-3.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i16-stride-4.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i16-stride-5.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i16-stride-6.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i16-stride-7.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i16-stride-8.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i32-stride-2.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i32-stride-3.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i32-stride-4.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i32-stride-5.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i32-stride-6.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i32-stride-7.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i32-stride-8.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i64-stride-2.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i64-stride-3.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i64-stride-4.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i64-stride-5.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i64-stride-6.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i64-stride-7.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i64-stride-8.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i8-stride-2.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i8-stride-3.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i8-stride-4.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i8-stride-5.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i8-stride-6.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i8-stride-7.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i8-stride-8.ll

  Log Message:
  -----------
  [X86][test] Update CHECK prefixes in CodeGen/X86/vector-interleaved-load-*.ll to suppress warnings

Suppress warnings like

WARNING: Prefix AVX had conflicting output from different RUN lines for all functions in test vector-interleaved-load-i16-stride-7.ll
WARNING: Prefix AVX1 had conflicting output from different RUN lines for all functions in test vector-interleaved-load-i16-stride-7.ll
WARNING: Prefix AVX2 had conflicting output from different RUN lines for all functions in test vector-interleaved-load-i16-stride-7.ll
WARNING: Prefix AVX2-ONLY had conflicting output from different RUN lines for all functions in test vector-interleaved-load-i16-stride-7.ll
WARNING: Prefix AVX512 had conflicting output from different RUN lines for all functions in test vector-interleaved-load-i16-stride-7.ll
WARNING: Prefix AVX512F had conflicting output from different RUN lines for all functions in test vector-interleaved-load-i16-stride-7.ll
WARNING: Prefix AVX512F-ONLY had conflicting output from different RUN lines for all functions in test vector-interleaved-load-i16-stride-7.ll
WARNING: Prefix AVX512-FAST had conflicting output from different RUN lines for all functions in test vector-interleaved-load-i16-stride-7.ll
WARNING: Prefix AVX512DQ-ONLY had conflicting output from different RUN lines for all functions in test vector-interleaved-load-i16-stride-7.ll


  Commit: 23b233c8adad5b81e185e50d04356fab64c2f870
      https://github.com/llvm/llvm-project/commit/23b233c8adad5b81e185e50d04356fab64c2f870
  Author: Andrew Schenk <154034018+schenka0 at users.noreply.github.com>
  Date:   2024-01-28 (Sun, 28 Jan 2024)

  Changed paths:
    M clang-tools-extra/clangd/SourceCode.cpp
    M clang-tools-extra/clangd/unittests/SourceCodeTests.cpp

  Log Message:
  -----------
  [clangd] Fix isSpelledInSource crash on invalid FileID (#76668)

This fixes the crash reported in #76667 and adds an initial unit test
for isSpelledInSource().

Note that in that issue there was still some underlying corrupted AST,
but this at least makes isSpelledInSource() robust to it.

---------

Co-authored-by: Younan Zhang <zyn7109 at gmail.com>


  Commit: d14c8f06ea1dceba1ec6c0823e55e3a142a48f46
      https://github.com/llvm/llvm-project/commit/d14c8f06ea1dceba1ec6c0823e55e3a142a48f46
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-01-28 (Sun, 28 Jan 2024)

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

  Log Message:
  -----------
  [X86] getFauxShuffleMask - don't allow undefs in constant for AND/ANDNP shuffle masks

Early out from getTargetConstantBitsFromNode call instead of just returning if an undef was found.


  Commit: 1b37e8087e1e1ecf5aadd8da536ee17dc21832e2
      https://github.com/llvm/llvm-project/commit/1b37e8087e1e1ecf5aadd8da536ee17dc21832e2
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-01-28 (Sun, 28 Jan 2024)

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

  Log Message:
  -----------
  [VPlan] use getVPValueOrAddLiveIn in VPlan::duplicate.

Instead of creating live-ins manually, use getOrAddLiveIn which
automatically takes care of adding them to VPLiveInsToFree. Also use it
to create the VPValue for the trip-count. This fixes a leak:
https://lab.llvm.org/buildbot/#/builders/168/builds/18308/steps/10/logs/stdio


  Commit: b13d5df84c2f3888e6775ce207b21e17bbf5cd1d
      https://github.com/llvm/llvm-project/commit/b13d5df84c2f3888e6775ce207b21e17bbf5cd1d
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-01-28 (Sun, 28 Jan 2024)

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

  Log Message:
  -----------
  [DAG] ComputeKnownBits - use KnownBits::usub_sat instead of a custom variant

KnownBits::usub_sat is already exhaustively tested in the unit tests


  Commit: 70e22537549c65d69ae97a311d821c6459b32289
      https://github.com/llvm/llvm-project/commit/70e22537549c65d69ae97a311d821c6459b32289
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-01-28 (Sun, 28 Jan 2024)

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

  Log Message:
  -----------
  [clang][Interp][NFC] Remove unnecessary braces


  Commit: a2f4c80ea8792f6d4c27e4cf9967400ac65d9ec6
      https://github.com/llvm/llvm-project/commit/a2f4c80ea8792f6d4c27e4cf9967400ac65d9ec6
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-01-28 (Sun, 28 Jan 2024)

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

  Log Message:
  -----------
  [X86] getTargetConstantBitsFromNode - add explicit support for whole/partial undef elements to all constant folding uses.

A NFC step before I start restricting the use of undef elements in getTargetConstantBitsFromNode


  Commit: 74e5418ae6630d298982f8014c184b01bebcf455
      https://github.com/llvm/llvm-project/commit/74e5418ae6630d298982f8014c184b01bebcf455
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-01-28 (Sun, 28 Jan 2024)

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

  Log Message:
  -----------
  [X86] Fix typo in assertion message. NFC.

We are NOT expecting undefs in AND/ANDNP faux shuffle masks


  Commit: 354548621fdbaead4832361d26922b91488e401a
      https://github.com/llvm/llvm-project/commit/354548621fdbaead4832361d26922b91488e401a
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-01-28 (Sun, 28 Jan 2024)

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

  Log Message:
  -----------
  [clang][Interp][NFC] Make some variables in the opcode emitter const


  Commit: 916bd7d3bb42627f52e2f8ed2f87e08db4960a72
      https://github.com/llvm/llvm-project/commit/916bd7d3bb42627f52e2f8ed2f87e08db4960a72
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-01-28 (Sun, 28 Jan 2024)

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

  Log Message:
  -----------
  [clang][Interp][NFC] Remove Root record from opcode emitter

It's only used once and only for its name, so replace that with
a string literal.


  Commit: f297d0bc6d5c9ca8db704b65fd0946ef2e9610ff
      https://github.com/llvm/llvm-project/commit/f297d0bc6d5c9ca8db704b65fd0946ef2e9610ff
  Author: David Green <david.green at arm.com>
  Date:   2024-01-28 (Sun, 28 Jan 2024)

  Changed paths:
    M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
    M llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
    M llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
    M llvm/test/CodeGen/AArch64/GlobalISel/legalize-fcmp.mir
    M llvm/test/CodeGen/AArch64/fcmp.ll

  Log Message:
  -----------
  [AArch64][GlobalISel] More FCmp legalization. (#78734)

This fills out the fcmp handling to be more like the other instructions,
adding better support for fp16 and some larger vectors.

Select of f16 values is still not handled optimally in places as the
select is only legal for s32 values, not s16. This would be correct for
integer but not necessarily for fp. It is as if we need to do
legalization -> regbankselect -> extra legaliation -> selection.


  Commit: 720ade25044536aed7372554e1818eac9536dc3a
      https://github.com/llvm/llvm-project/commit/720ade25044536aed7372554e1818eac9536dc3a
  Author: Sirui Mu <msrlancern at gmail.com>
  Date:   2024-01-28 (Sun, 28 Jan 2024)

  Changed paths:
    M libc/cmake/modules/LLVMLibCArchitectures.cmake

  Log Message:
  -----------
  [libc][CMake] fix CMake configure issues on openSUSE (#79751)


  Commit: 60dbb2cec1bbf65aacf6752a59b0666a23aaa3ae
      https://github.com/llvm/llvm-project/commit/60dbb2cec1bbf65aacf6752a59b0666a23aaa3ae
  Author: Shengchen Kan <shengchen.kan at intel.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M llvm/test/CodeGen/X86/vector-interleaved-store-i16-stride-2.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i16-stride-3.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i16-stride-4.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i16-stride-5.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i16-stride-6.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i16-stride-7.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i16-stride-8.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i32-stride-2.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i32-stride-3.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i32-stride-4.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i32-stride-5.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i32-stride-6.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i32-stride-7.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i32-stride-8.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i64-stride-2.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i64-stride-3.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i64-stride-4.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i64-stride-5.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i64-stride-6.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i64-stride-7.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i64-stride-8.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i8-stride-2.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i8-stride-3.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i8-stride-4.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i8-stride-5.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i8-stride-6.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i8-stride-7.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i8-stride-8.ll

  Log Message:
  -----------
  [X86][test] Update CHECK prefixes in CodeGen/X86/vector-interleaved-store-*.ll to suppress warnings

Suppress warnings like

WARNING: Prefix AVX had conflicting output from different RUN lines for all functions in test vector-interleaved-store-i16-stride-7.ll
WARNING: Prefix AVX1 had conflicting output from different RUN lines for all functions in test vector-interleaved-store-i16-stride-7.ll
WARNING: Prefix AVX2 had conflicting output from different RUN lines for all functions in test vector-interleaved-store-i16-stride-7.ll
WARNING: Prefix AVX2-ONLY had conflicting output from different RUN lines for all functions in test vector-interleaved-store-i16-stride-7.ll
WARNING: Prefix AVX512 had conflicting output from different RUN lines for all functions in test vector-interleaved-store-i16-stride-7.ll
WARNING: Prefix AVX512F had conflicting output from different RUN lines for all functions in test vector-interleaved-store-i16-stride-7.ll
WARNING: Prefix AVX512F-ONLY had conflicting output from different RUN lines for all functions in test vector-interleaved-store-i16-stride-7.ll
WARNING: Prefix AVX512-FAST had conflicting output from different RUN lines for all functions in test vector-interleaved-store-i16-stride-7.ll
WARNING: Prefix AVX512DQ-ONLY had conflicting output from different RUN lines for all functions in test vector-interleaved-store-i16-stride-7.ll


  Commit: 6d7c8a6e062a237f1a23e7753c6737f5796e5188
      https://github.com/llvm/llvm-project/commit/6d7c8a6e062a237f1a23e7753c6737f5796e5188
  Author: Shengchen Kan <shengchen.kan at intel.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M llvm/test/CodeGen/X86/vector-interleaved-store-i16-stride-5.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i8-stride-8.ll

  Log Message:
  -----------
  [X86][test] Update failed tests in 60dbb2cec1bbf65aacf6752a59b0666a23aaa3ae after rebase


  Commit: 915c3d9e5a2d1314afe64cd6116a3b6c9809ec90
      https://github.com/llvm/llvm-project/commit/915c3d9e5a2d1314afe64cd6116a3b6c9809ec90
  Author: David Green <david.green at arm.com>
  Date:   2024-01-28 (Sun, 28 Jan 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
    M llvm/lib/Target/AArch64/AArch64InstrInfo.h
    M llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp
    M llvm/test/CodeGen/AArch64/arm64-addrmode.ll
    M llvm/test/CodeGen/AArch64/large-offset-ldr-merge.mir

  Log Message:
  -----------
  Revert "[AArch64] merge index address with large offset into base address"

This reverts commit 32878c2065c8005b3ea30c79e16dfd7eed55d645 due to #79756 and #76202.


  Commit: 72fd10adcbf8194a08141e38a95e11f4f1a8d7c2
      https://github.com/llvm/llvm-project/commit/72fd10adcbf8194a08141e38a95e11f4f1a8d7c2
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-01-28 (Sun, 28 Jan 2024)

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

  Log Message:
  -----------
  [X86] getTargetConstantBitsFromNode - don't support partial undefs by default.

Noticed by inspection - as undef bits are seen as zero, we could be matching in places where we require a zero but end up referencing an undef that could then get changed in a later fold.

Creating a test case has proven difficult as multi-use limits usually saves us, but really we shouldn't be allowing partial undefs for anything but constant folding.


  Commit: d1427fb6d0e1dbe3b7dbf46c26e43ce96b9b56d5
      https://github.com/llvm/llvm-project/commit/d1427fb6d0e1dbe3b7dbf46c26e43ce96b9b56d5
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-01-28 (Sun, 28 Jan 2024)

  Changed paths:
    M clang/lib/Edit/RewriteObjCFoundationAPI.cpp

  Log Message:
  -----------
  [Edit] Use StringRef::consume_back (NFC)


  Commit: 26648daeb2ea1e9443d214e3923583efba346603
      https://github.com/llvm/llvm-project/commit/26648daeb2ea1e9443d214e3923583efba346603
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-01-28 (Sun, 28 Jan 2024)

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

  Log Message:
  -----------
  [ExtractAPI] Use StringRef::starts_with (NFC)


  Commit: 3bf21ba597d00253c6ef55bb0b499711dd778d84
      https://github.com/llvm/llvm-project/commit/3bf21ba597d00253c6ef55bb0b499711dd778d84
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-01-28 (Sun, 28 Jan 2024)

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

  Log Message:
  -----------
  [AMDGPU] Use MachineBasicBlock::instrs (NFC)


  Commit: 2c552d319a5f0378c48390524de436265b05b943
      https://github.com/llvm/llvm-project/commit/2c552d319a5f0378c48390524de436265b05b943
  Author: chuongg3 <chuong.goh at arm.com>
  Date:   2024-01-28 (Sun, 28 Jan 2024)

  Changed paths:
    M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
    M llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
    A llvm/test/CodeGen/AArch64/abs.ll
    M llvm/test/CodeGen/AArch64/vecreduce-add.ll

  Log Message:
  -----------
  [AArch64][GlobalISel] Legalize G_ABS for Larger/Smaller Vectors (#79117)

Legalize G_ABS for larger/smaller width vectors with legal element sizes

Fallsback for the smaller width vector tests because it is unable to
legalize for G_ANYEXT smaller width vectors


  Commit: a7cfff8dc6b38e54c6c5adee3b4b781f1090ee25
      https://github.com/llvm/llvm-project/commit/a7cfff8dc6b38e54c6c5adee3b4b781f1090ee25
  Author: chuongg3 <chuong.goh at arm.com>
  Date:   2024-01-28 (Sun, 28 Jan 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/GISel/AArch64PostLegalizerLowering.cpp
    M llvm/test/CodeGen/AArch64/arm64-rev.ll

  Log Message:
  -----------
  [AArch64][GlobalISel] Lower Shuffle Vector to REV (#79591)

Add lowering for i16 and i32 vectors for Shuffle Vector instructions
with REV mask


  Commit: 2d0d65b3babecbd339b01fdf7da29b8dfd69f889
      https://github.com/llvm/llvm-project/commit/2d0d65b3babecbd339b01fdf7da29b8dfd69f889
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-01-28 (Sun, 28 Jan 2024)

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

  Log Message:
  -----------
  [VPlan] Create edge masks all cases up front needed.(NFC)

Similarly to how block masks are created up front and later only
retrieved also make sure masks are created in cases where edge masks are
needed, i.e. blend recipes.

Creating block-in masks for all blocks in the loop also ensures edge
masks for all relevant edges have been created. Later, the new
getEdgeMask can be used to look up cached edge masks.

This makes sure edge masks are available in all cases for
https://github.com/llvm/llvm-project/pull/76090.


  Commit: c34aa784f8867517315d8ef32a8038ee9dbb7165
      https://github.com/llvm/llvm-project/commit/c34aa784f8867517315d8ef32a8038ee9dbb7165
  Author: Qizhi Hu <836744285 at qq.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/Sema/SemaTemplateDeduction.cpp
    A clang/test/SemaTemplate/PR77189.cpp

  Log Message:
  -----------
  [Clang][Sema] fix deducing auto& from const int in template parameters is impossible in partial specializations (#79733)

Fix [issue](https://github.com/llvm/llvm-project/issues/77189)
AutoType is possible cv qualified.

Co-authored-by: huqizhi <836744285 at qq.com>


  Commit: 70c3e30e01bd123e87824e36b6e38a39451ac28d
      https://github.com/llvm/llvm-project/commit/70c3e30e01bd123e87824e36b6e38a39451ac28d
  Author: Jianjian Guan <jacquesguan at me.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

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

  Log Message:
  -----------
  [RISCV][NFC] Remove unused methods of tuimm5 (#79680)

Since we only use tuimm5 in patterns, it doesn't need those methods for
MC layer. And there is not `getUImmOpValue` defination now, leave those
methods is confusing.


  Commit: a3f379e4e9db9d88265e6dfc464fc3a5be3ae315
      https://github.com/llvm/llvm-project/commit/a3f379e4e9db9d88265e6dfc464fc3a5be3ae315
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-01-28 (Sun, 28 Jan 2024)

  Changed paths:
    M clang/lib/Frontend/VerifyDiagnosticConsumer.cpp

  Log Message:
  -----------
  [Frontend] Use StringRef::consume_back (NFC)


  Commit: fc1573118333845e3ce0dc659b9e7cc3394d3c82
      https://github.com/llvm/llvm-project/commit/fc1573118333845e3ce0dc659b9e7cc3394d3c82
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-01-28 (Sun, 28 Jan 2024)

  Changed paths:
    M llvm/lib/Transforms/Scalar/GVN.cpp

  Log Message:
  -----------
  [Transforms] Use a range-based for loop (NFC)


  Commit: 1f5934a901d52786470c7e26c214b2b9773efd87
      https://github.com/llvm/llvm-project/commit/1f5934a901d52786470c7e26c214b2b9773efd87
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-01-28 (Sun, 28 Jan 2024)

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

  Log Message:
  -----------
  [PowerPC] Directly call Instruction::getMetadata (NFC)


  Commit: ae46855f53b6fe39a8d17797a49b2911c08fb973
      https://github.com/llvm/llvm-project/commit/ae46855f53b6fe39a8d17797a49b2911c08fb973
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-01-28 (Sun, 28 Jan 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
    M llvm/lib/Target/ARM/ARMISelLowering.cpp
    M llvm/lib/Target/PowerPC/PPCISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp

  Log Message:
  -----------
  [Target] Use getConstantOperand (NFC)


  Commit: 07dfa61ace272fc5fc7f486cf42a3d603c8c21f5
      https://github.com/llvm/llvm-project/commit/07dfa61ace272fc5fc7f486cf42a3d603c8c21f5
  Author: ZhaoQi <zhaoqi01 at loongson.cn>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCExpr.cpp

  Log Message:
  -----------
  [LoongArch] Fix a typo in getVariantKindName (NFC) (#79567)

Looks like a slip of the pen.


  Commit: 0fbaf03f703db2cb29d1bde23708b80db049164f
      https://github.com/llvm/llvm-project/commit/0fbaf03f703db2cb29d1bde23708b80db049164f
  Author: Michal Paszkowski <michal at paszkowski.org>
  Date:   2024-01-28 (Sun, 28 Jan 2024)

  Changed paths:
    M llvm/lib/Target/SPIRV/CMakeLists.txt
    M llvm/lib/Target/SPIRV/SPIRVCallLowering.cpp
    M llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
    A llvm/lib/Target/SPIRV/SPIRVMetadata.cpp
    A llvm/lib/Target/SPIRV/SPIRVMetadata.h
    A llvm/test/CodeGen/SPIRV/pointers/kernel-argument-ptr-i8-default-element-type.ll
    A llvm/test/CodeGen/SPIRV/pointers/kernel-argument-ptr-no-bitcast.ll
    A llvm/test/CodeGen/SPIRV/pointers/store-kernel-arg-i8-ptr-as-value-operand.ll
    A llvm/test/CodeGen/SPIRV/pointers/store-kernel-arg-ptr-as-value-operand.ll

  Log Message:
  -----------
  [SPIR-V] Cast ptr kernel args to i8* when used as Store's value operand (#78603)

Handle a special case when StoreInst's value operand is a kernel
argument of a pointer type. Since these arguments could have either a
basic element type (e.g. float*) or OpenCL builtin type (sampler_t),
bitcast the StoreInst's value operand to default pointer element type
(i8).

This pull request addresses the issue
https://github.com/llvm/llvm-project/issues/72864


  Commit: a0b6747804e46665ecfd00295b60432bfe1775b6
      https://github.com/llvm/llvm-project/commit/a0b6747804e46665ecfd00295b60432bfe1775b6
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/Serialization/ASTReader.h
    M clang/lib/Serialization/ASTReader.cpp
    M clang/lib/Serialization/ASTReaderDecl.cpp
    M clang/lib/Serialization/ASTWriter.cpp
    M clang/lib/Serialization/ASTWriterDecl.cpp
    M clang/test/Modules/concept.cppm
    M clang/test/Modules/no-eager-load.cppm
    M clang/test/Modules/polluted-operator.cppm
    M clang/test/Modules/pr76638.cppm

  Log Message:
  -----------
  [C++20] [Modules] Don't perform ODR checks in GMF

Close https://github.com/llvm/llvm-project/issues/79240.

See the linked issue for details. Given the frequency of issue reporting
about false positive ODR checks (I received private issue reports too),
I'd like to backport this to 18.x too.


  Commit: 86b3f8518f21532297e0aad0c6aea95c66389fc9
      https://github.com/llvm/llvm-project/commit/86b3f8518f21532297e0aad0c6aea95c66389fc9
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-01-28 (Sun, 28 Jan 2024)

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

  Log Message:
  -----------
  [RISCV] Used Twine concatenation instead of format strings RISCVISAInfo.cpp. NFC

We were converting several StringRefs to std::strings then to
char * so we could pass as %s to a format string. Use the Twine
signature of createStringError instead.


  Commit: c09dc2d9855dbf81d95052ade22b2ca78b1d8b99
      https://github.com/llvm/llvm-project/commit/c09dc2d9855dbf81d95052ade22b2ca78b1d8b99
  Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
  Date:   2024-01-28 (Sun, 28 Jan 2024)

  Changed paths:
    M flang/lib/Lower/OpenACC.cpp
    M flang/test/Lower/OpenACC/acc-data.f90
    M flang/test/Lower/OpenACC/acc-kernels-loop.f90
    M flang/test/Lower/OpenACC/acc-kernels.f90
    M flang/test/Lower/OpenACC/acc-parallel-loop.f90
    M flang/test/Lower/OpenACC/acc-parallel.f90
    M flang/test/Lower/OpenACC/acc-serial-loop.f90
    M flang/test/Lower/OpenACC/acc-serial.f90
    M flang/test/Lower/OpenACC/acc-update.f90
    M llvm/include/llvm/Frontend/Directive/DirectiveBase.td
    M mlir/include/mlir/Dialect/OpenACC/OpenACCOps.td
    M mlir/lib/Dialect/OpenACC/IR/OpenACC.cpp
    M mlir/test/Dialect/OpenACC/invalid.mlir
    M mlir/test/Dialect/OpenACC/ops.mlir
    M mlir/unittests/Dialect/OpenACC/OpenACCOpsTest.cpp

  Log Message:
  -----------
  [mlir][openacc][flang] Support wait devnum and clean async/wait IR (#79525)

- Support wait(devnum: ) with device_type support on all operations that
require it
- devnum value is stored as the first value of waitOperands in its
device_type sub-segment. The hasWaitDevnum attribute inform which
sub-segment has a wait(devnum) value.
- Make async/wait information homogenous on compute ops, data and update
op.
- Unify operands/attributes names across operations and use the same
custom parser/printer


  Commit: 4eeeeb305b6bb1c08e04482848f425b07029c82c
      https://github.com/llvm/llvm-project/commit/4eeeeb305b6bb1c08e04482848f425b07029c82c
  Author: Valentin Clement <clementval at gmail.com>
  Date:   2024-01-28 (Sun, 28 Jan 2024)

  Changed paths:
    M flang/lib/Lower/OpenACC.cpp

  Log Message:
  -----------
  [flang][openacc] Remove waitDevnum unused variable


  Commit: 4118082f651a05cca258c684ab1199578b57afac
      https://github.com/llvm/llvm-project/commit/4118082f651a05cca258c684ab1199578b57afac
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M clang/lib/AST/ODRHash.cpp
    A clang/test/Modules/cxx20-modules-enum-odr.cppm

  Log Message:
  -----------
  [C++20] [Modules] Remove previous workaround for odr hashing enums

Previosly we land
https://github.com/llvm/llvm-project/commit/085eae6b863881fb9fda323e5b672b04a00ed19e
to workaround the false positive ODR violations in
https://github.com/llvm/llvm-project/issues/76638.

However, we decided to not perform ODR checks for decls from GMF in
https://github.com/llvm/llvm-project/issues/79240 and we land the
corresponding change. So we should be able to remove the workaround now.

The original tests get remained.


  Commit: 4a39d08908942b2d415db405844cbe4af73e75d4
      https://github.com/llvm/llvm-project/commit/4a39d08908942b2d415db405844cbe4af73e75d4
  Author: Mark Johnston <markjdb at gmail.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M libcxx/src/filesystem/operations.cpp
    M libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.remove_all/remove_all.pass.cpp

  Log Message:
  -----------
  [libc++] Fix filesystem::remove_all() on FreeBSD (#79540)

remove_all_impl() opens the target path with O_NOFOLLOW, which fails if
the target is a symbolic link. On FreeBSD, rather than returning ELOOP,
openat() returns EMLINK. This is unlikely to change for compatibility
reasons, see https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=214633 .

Thus, check for EMLINK as well.


  Commit: 66347e516e22f9159b86024071fb92f364ac4418
      https://github.com/llvm/llvm-project/commit/66347e516e22f9159b86024071fb92f364ac4418
  Author: Han-Chung Wang <hanhan0912 at gmail.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M mlir/lib/Dialect/Vector/Transforms/VectorTransforms.cpp
    M mlir/test/Dialect/Vector/vector-transfer-collapse-inner-most-dims.mlir

  Log Message:
  -----------
  [mlir][vector] Drop inner unit dims for transfer ops on dynamic shapes. (#79752)


  Commit: e3a38a75ddc6ff00301ec19a0e2488d00f2cc297
      https://github.com/llvm/llvm-project/commit/e3a38a75ddc6ff00301ec19a0e2488d00f2cc297
  Author: Andrei Golubev <andrey.golubev at intel.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

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

  Log Message:
  -----------
  [mlir] Revert to old fold logic in IR::Dialect::add{Types, Attributes}() (#79582)

Fold expressions on Clang are limited to 256 elements. This causes
compilation errors in cases when the amount of elements added exceeds
this limit. Side-step the issue by restoring the original trick that
would use the std::initializer_list. For the record, in our downstream
Clang 16 gives:

mlir/include/mlir/IR/Dialect.h:269:23: fatal error: instantiating fold
expression with 688 arguments exceeded expression nesting limit of 256
    (addType<Args>(), ...);

Partially reverts 26d811b3ecd2fa1ca3d9b41e17fb42b8c7ad03d6.

Co-authored-by: Nikita Kudriavtsev <nikita.kudriavtsev at intel.com>


  Commit: 9f80ecb308c989523cc32d4256f7ab61c5b788d7
      https://github.com/llvm/llvm-project/commit/9f80ecb308c989523cc32d4256f7ab61c5b788d7
  Author: Balázs Kéri <balazs.keri at ericsson.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M clang/lib/AST/ASTImporter.cpp
    M clang/lib/AST/ASTStructuralEquivalence.cpp
    M clang/unittests/AST/ASTImporterGenericRedeclTest.cpp
    M clang/unittests/AST/ASTImporterTest.cpp

  Log Message:
  -----------
  [clang][ASTImporter] Improve import of variable template specializations. (#78284)

Code of `VisitVarTemplateSpecializationDecl` was rewritten based on code
of `VisitVarDecl`. Additional changes (in structural equivalence) were
made to make tests pass.


  Commit: ce8032394fa4ff55c36d857e85241c1bd0cacc60
      https://github.com/llvm/llvm-project/commit/ce8032394fa4ff55c36d857e85241c1bd0cacc60
  Author: Dominik Adamski <dominik.adamski at amd.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M flang/lib/Lower/OpenMP.cpp
    M flang/test/Lower/OpenMP/FIR/if-clause.f90
    M flang/test/Lower/OpenMP/FIR/loop-combined.f90
    A flang/test/Lower/OpenMP/Todo/omp-do-simd-aligned.f90
    A flang/test/Lower/OpenMP/Todo/omp-do-simd-linear.f90
    A flang/test/Lower/OpenMP/Todo/omp-do-simd-safelen.f90
    A flang/test/Lower/OpenMP/Todo/omp-do-simd-simdlen.f90
    M flang/test/Lower/OpenMP/if-clause.f90
    M flang/test/Lower/OpenMP/loop-combined.f90

  Log Message:
  -----------
  [Flang][OpenMP] Use simdloop operation only for omp simd pragma (#79559)

OpenMP standard differentiates between omp simd (2.9.3.1) and omp do/for
simd (2.9.3.2 for OpenMP 5.0 standard) pragmas. The first one describes
the loop which needs to be vectorized. The second pragma describes the
loop which needs to be workshared between existing threads. Each thread
can use SIMD instructions to execute its chunk of the loop.

That's why we need to model
```
!$omp simd
  do-loop
```
as `omp.simdloop` operation and add compiler hints for vectorization.

The worksharing loop:
!$omp do simd
  do-loop
should be represented as worksharing loop (`omp.wsloop`).

Currently Flang denotes both types of OpenMP pragmas by `omp.simdloop`
operation. In consequence we cannot differentiate between:
```
!$omp parallel simd
   do-loop
```
and
```
!$omp parallel do simd
   do-loop
 ```
The second loop should be workshared between multiple threads. The first one describes the loop which needs to be redundantly executed by multiple threads. Current Flang implementation does not perform worksharing for `!$omp do simd` pragma and generates valid code only for the first case.


  Commit: 743946e8ef0d164cbaa3409d11b218e299ccd35e
      https://github.com/llvm/llvm-project/commit/743946e8ef0d164cbaa3409d11b218e299ccd35e
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

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

  Log Message:
  -----------
  [VPlan] Replace VPRecipeOrVPValue with VP2VP recipe simplification. (#76090)

Move simplification of VPBlendRecipes from early VPlan construction to
VPlan-to-VPlan based recipe simplification. This simplifies initial
construction.

Note that some in-loop reduction tests are failing at the moment, due to
the reduction predicate being created after the reduction recipe. I will
provide a patch for that soon.

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


  Commit: 34d80f559a3ebaa354f7820022c5e050a47a9870
      https://github.com/llvm/llvm-project/commit/34d80f559a3ebaa354f7820022c5e050a47a9870
  Author: David Spickett <david.spickett at linaro.org>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M lldb/include/lldb/Target/MemoryHistory.h
    M lldb/source/API/SBBreakpointOptionCommon.h

  Log Message:
  -----------
  [lldb][NFC] Fix license comment lines that are too long

These get wrapped by clang-format currently.


  Commit: 89c9fee420e1ed099aaa4aab48f3b58e233a3ea9
      https://github.com/llvm/llvm-project/commit/89c9fee420e1ed099aaa4aab48f3b58e233a3ea9
  Author: David Spickett <david.spickett at linaro.org>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M lldb/include/lldb/API/SBBreakpointName.h
    M lldb/include/lldb/Breakpoint/BreakpointName.h
    M lldb/include/lldb/Breakpoint/BreakpointResolverScripted.h
    M lldb/source/Plugins/ABI/X86/ABIWindows_x86_64.h
    M lldb/source/Plugins/Architecture/Mips/ArchitectureMips.h
    M lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
    M lldb/unittests/Disassembler/x86/TestGetControlFlowKindx86.cpp

  Log Message:
  -----------
  [lldb][NFC] Fix more license headers

Extra characters and one with an incorrect file name.


  Commit: 378f7ad3b7080fb17829e53452692fd5809f4790
      https://github.com/llvm/llvm-project/commit/378f7ad3b7080fb17829e53452692fd5809f4790
  Author: David Green <david.green at arm.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M flang/lib/Optimizer/HLFIR/Transforms/OptimizedBufferization.cpp
    A flang/test/HLFIR/maxloc-elemental.fir

  Log Message:
  -----------
  [Flang] Maxloc elemental intrinsic lowering. (#79469)

This is an extension to #74828 to handle maxloc too, to keep the minloc
and maxloc symmetric.


  Commit: ba5d92eb9c18a9037dd06a74f90ceba3f4e3ace9
      https://github.com/llvm/llvm-project/commit/ba5d92eb9c18a9037dd06a74f90ceba3f4e3ace9
  Author: David Spickett <david.spickett at linaro.org>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M llvm/docs/CodeReview.rst
    M llvm/docs/DeveloperPolicy.rst
    M llvm/docs/GettingStarted.rst
    M llvm/docs/MyFirstTypoFix.rst

  Log Message:
  -----------
  [llvm][Docs] Update MyFirstTypoFix doc (#79149)

I've not tried to change the purpose or style of the doc, just edited
for clarity and removed any Phabricator related language in favour of
GitHub terms.

Where possible, I've swapped direct links to LLVM's website with RST
links to the local documents. Which should be a bit more resilient.

Also it's less confusing if you're editing multiple pages locally, you
don't accidentally end up on the live site.


  Commit: c9535d7b61a37d6fa58e51222a9ccecc54431193
      https://github.com/llvm/llvm-project/commit/c9535d7b61a37d6fa58e51222a9ccecc54431193
  Author: Stephan T. Lavavej <stl at nuwen.net>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M libcxx/test/std/algorithms/alg.nonmodifying/alg.find/find.pass.cpp
    M libcxx/test/std/algorithms/alg.nonmodifying/alg.fold/left_folds.pass.cpp
    M libcxx/test/std/numerics/numeric.ops/numeric.ops.midpoint/midpoint.pointer.pass.cpp

  Log Message:
  -----------
  [libc++][test] Silence MSVC warnings (#79791)

* `libcxx/test/std/algorithms/alg.nonmodifying/alg.find/find.pass.cpp`
emits a bunch of warnings, all caused by what appears to be intentional
code:
+ Silence MSVC warning C4245: conversion from `'int'` to `'wchar_t'`,
signed/unsigned mismatch
    - Caused by: `test<U>(0, -1);`
+ Silence MSVC warning C4305: 'argument': truncation from `'int'` to
`'bool'`
    - Caused by: `test<U>(0, -1);`
  + Silence MSVC warning C4310: cast truncates constant value
    - Caused by: `test<U>(T(-129), U(-129));`
+ Silence MSVC warning C4805: `'=='`: unsafe mix of type `'char'` and
type `'bool'` in operation
    - Caused by: `bool expect_match = val == to_find;`
*
`libcxx/test/std/algorithms/alg.nonmodifying/alg.fold/left_folds.pass.cpp`
+ Silence MSVC warning C4244: 'argument': conversion from `'double'` to
`'const int'`, possible loss of data
- Caused by `[](int const x, double const y) { return x + y; }`
deliberately being given `double`s to truncate.
*
`libcxx/test/std/numerics/numeric.ops/numeric.ops.midpoint/midpoint.pointer.pass.cpp`
  + Silence MSVC warnings about C++20 deprecated `volatile`.
    - Caused by: `runtime_test<      volatile T>();`


  Commit: ef83894810db8ec72489f1b45bf943938f6b0af4
      https://github.com/llvm/llvm-project/commit/ef83894810db8ec72489f1b45bf943938f6b0af4
  Author: Stephan T. Lavavej <stl at nuwen.net>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M libcxx/test/std/algorithms/alg.nonmodifying/alg.contains/ranges.contains.pass.cpp

  Log Message:
  -----------
  [libc++][test] Fix zero-length arrays and copy-pasted lambdas in `ranges.contains.pass.cpp` (#79792)

* Fix MSVC error C2466: cannot allocate an array of constant size 0
  + MSVC rejects this non-Standard extension. Previous fixes: #74183
* Fix MSVC warning C4805: `'=='`: unsafe mix of type `'int'` and type
`'const bool'` in operation
+ AFAICT, these lambdas were copy-pasted, and didn't intend to take and
return `int` here. This part of the test is using `vector<bool>` for
random-access but non-contiguous iterators, and it's checking how many
times the projection is invoked, but the projection doesn't need to do
anything squirrely, it should otherwise be an identity.
* Fix typos: "continuous" => "contiguous".


  Commit: 2e2b6b53f5f63179b52168ee156df7c76b90bc71
      https://github.com/llvm/llvm-project/commit/2e2b6b53f5f63179b52168ee156df7c76b90bc71
  Author: Peter Waller <peter.waller at arm.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M compiler-rt/lib/builtins/aarch64/sme-libc-routines.c

  Log Message:
  -----------
  [AArch64][compiler-rt] Avoid use of libc header in sme-libc-routines (#79454)

The use of `#include <stdlib.h>` introduces a libc dependency. In many
build environments such a file can be found under e.g. /usr/include, but
this does not necessarily correspond to the libc in use, which may not
be available until after the builtins have been built.

So far as I understand, it's not valid to have a dependency on libc from
builtins; there are a handful of such includes in builtins, but they are
protected by ifdefs.

Instead, use <stddef.h>, which provides `size_t` and is provided by the
compiler's resource headers and so should always be available.


  Commit: 14a15103cc9dbdb3e95c04627e0b96b5e3aa4944
      https://github.com/llvm/llvm-project/commit/14a15103cc9dbdb3e95c04627e0b96b5e3aa4944
  Author: Yi Wu <43659785+yi-wu-arm at users.noreply.github.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M flang/docs/Intrinsics.md
    M flang/lib/Evaluate/intrinsics.cpp
    A flang/test/Semantics/execute_command_line.f90

  Log Message:
  -----------
  Apply kind code check on exitstat and cmdstat  (#78286)

When testing on gcc, both exitstat and cmdstat must be a kind=4 integer,
e.g. DefaultInt. This patch changes the input arg requirement from
`AnyInt` to `TypePattern{IntType, KindCode::greaterOrEqualToKind, n}`.

The standard stated in 16.9.73
- EXITSTAT (optional) shall be a scalar of type integer with a decimal
exponent range of at least nine.
- CMDSTAT (optional) shall be a scalar of type integer with a decimal
exponent range of at least four.
 
```fortran
program bug
  implicit none
  integer(kind = 2) :: exitstatvar
  integer(kind = 4) :: cmdstatvar 
  character(len=256) :: msg
  character(len=:), allocatable :: command
  command='echo hello'
  call execute_command_line(command, exitstat=exitstatvar, cmdstat=cmdstatvar)
end program
```
When testing the above program with exitstatvar kind<4, an error would
occur:
```
$ ../build-release/bin/flang-new test.f90 
error: Semantic errors in test.f90
./test.f90:8:47: error: Actual argument for 'exitstat=' has bad type or kind 'INTEGER(2)'
    call execute_command_line(command, exitstat=exitstatvar)
```

When testing the above program with exitstatvar kind<2, an error would
occur:
```
$ ../build-release/bin/flang-new test.f90 
error: Semantic errors in test.f90
./test.f90:8:47: error: Actual argument for 'cmdstat=' has bad type or kind 'INTEGER(1)'
    call execute_command_line(command, cmdstat=cmdstatvar)
```

Test file for this semantics has been added to `flang/test/Semantic`
Fixes: https://github.com/llvm/llvm-project/issues/77990


  Commit: 5f4ee5a2dfa97fe32ee62d1d67aa1413d5a059e6
      https://github.com/llvm/llvm-project/commit/5f4ee5a2dfa97fe32ee62d1d67aa1413d5a059e6
  Author: Shanzhi <chenshanzhi at huawei.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M clang/lib/AST/ASTContext.cpp
    A clang/test/AST/ast-crash-doc-function-template.cpp

  Log Message:
  -----------
  [Clang][AST] Fix a crash on attaching doc comments (#78716)

This crash is basically caused by calling
`ASTContext::getRawCommentForDeclNoCacheImp` with its input arguments
`RepresentativeLocForDecl` and `CommentsInTheFile` refering to different
files. A reduced reproducer is provided in this patch.

After the source locations for instantiations of funtion template are
corrected in the commit 256a0b298c68b89688b80350b034daf2f7785b67, the
variable `CommitsInThisFile` in the function
`ASTContext::attachCommentsToJustParsedDecls` would refer to the source
file rather than the header file for implicit function template
instantiation. Therefore, in the first loop in
`ASTContext::attachCommentsToJustParsedDecls`, `D` should also be
adjusted for relevant scenarios like the second loop.

Fixes #67979 
Fixes #68524
Fixes #70550


  Commit: 888501bc631c4f6d373b4081ff6c504a1ce4a682
      https://github.com/llvm/llvm-project/commit/888501bc631c4f6d373b4081ff6c504a1ce4a682
  Author: Med Ismail Bennani <ismail at bennani.ma>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M lldb/bindings/python/python-swigsafecast.swig
    M lldb/bindings/python/python-wrapper.swig
    M lldb/include/lldb/API/SBEvent.h
    M lldb/include/lldb/API/SBStream.h
    M lldb/include/lldb/Interpreter/Interfaces/ScriptedInterface.h
    A lldb/include/lldb/Interpreter/Interfaces/ScriptedThreadPlanInterface.h
    M lldb/include/lldb/Interpreter/ScriptInterpreter.h
    M lldb/include/lldb/Target/ThreadPlanPython.h
    M lldb/include/lldb/lldb-forward.h
    M lldb/source/Interpreter/ScriptInterpreter.cpp
    M lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/CMakeLists.txt
    M lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedPlatformPythonInterface.cpp
    M lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedProcessPythonInterface.cpp
    M lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedPythonInterface.cpp
    M lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedPythonInterface.h
    A lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedThreadPlanPythonInterface.cpp
    A lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedThreadPlanPythonInterface.h
    M lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedThreadPythonInterface.cpp
    M lldb/source/Plugins/ScriptInterpreter/Python/SWIGPythonBridge.h
    M lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
    M lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPythonImpl.h
    M lldb/source/Target/ThreadPlanPython.cpp
    M lldb/test/API/functionalities/step_scripted/Steps.py
    M lldb/test/API/functionalities/thread_plan/wrap_step_over.py
    M lldb/unittests/ScriptInterpreter/Python/PythonTestSuite.cpp

  Log Message:
  -----------
  [lldb] Make use of Scripted{Python,}Interface for ScriptedThreadPlan (#70392)

This patch makes ScriptedThreadPlan conforming to the ScriptedInterface
& ScriptedPythonInterface facilities by introducing 2
ScriptedThreadPlanInterface & ScriptedThreadPlanPythonInterface classes.

This allows us to get rid of every ScriptedThreadPlan-specific SWIG
method and re-use the same affordances as other scripting offordances,
like Scripted{Process,Thread,Platform} & OperatingSystem.

To do so, this adds new transformer methods for `ThreadPlan`, `Stream` &
`Event`, to allow the bijection between C++ objects and their python
counterparts.

Signed-off-by: Med Ismail Bennani <ismail at bennani.ma>


  Commit: febb4c42b192ed7c88c17f91cb903a59acf20baf
      https://github.com/llvm/llvm-project/commit/febb4c42b192ed7c88c17f91cb903a59acf20baf
  Author: Med Ismail Bennani <ismail at bennani.ma>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M lldb/test/API/functionalities/step_scripted/TestStepScripted.py

  Log Message:
  -----------
  [lldb/Test] Temporarily XFAIL TestStepScripted.py

This patch XFAILs TestStepScripted.py temporarily following 888501bc631c,
until I fix it.

Signed-off-by: Med Ismail Bennani <ismail at bennani.ma>


  Commit: ec8c8b6487d53b2c3222f1a2f8968e754b070912
      https://github.com/llvm/llvm-project/commit/ec8c8b6487d53b2c3222f1a2f8968e754b070912
  Author: David Green <david.green at arm.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M flang/lib/Optimizer/HLFIR/Transforms/OptimizedBufferization.cpp

  Log Message:
  -----------
  [Flang] Remove constexpr from isMax variable. NFC

The MSCV build doesn't allow the constexpr isMax variable to be used in lambda
without a capture. The -Weverything build does not allow isMax to be used in a
lambda capture as it is a constexpr. I've removed the constexpr as it shouldn't
be necessary.


  Commit: 2dd254566d0242be2d78f1656cee12a84e7aea00
      https://github.com/llvm/llvm-project/commit/2dd254566d0242be2d78f1656cee12a84e7aea00
  Author: NimishMishra <42909663+NimishMishra at users.noreply.github.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M flang/docs/Extensions.md
    M flang/include/flang/Optimizer/Builder/IntrinsicCall.h
    M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
    A flang/test/Lower/Intrinsics/cosd.f90
    A flang/test/Lower/Intrinsics/sind.f90

  Log Message:
  -----------
  [flang] Add support for COSD/SIND (#79546)

Added support for COSD and SIND. This is quick fix. ATAND, TAND, COSD
and SIND needs to be revisited to make it a runtime call. This patch has
code changes and test cases.


  Commit: 3a4a7dcd623b9cbd6371c3246a31e985f1f7f232
      https://github.com/llvm/llvm-project/commit/3a4a7dcd623b9cbd6371c3246a31e985f1f7f232
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M llvm/test/CodeGen/X86/mul-i1024.ll
    M llvm/test/CodeGen/X86/mul-i256.ll
    M llvm/test/CodeGen/X86/mul-i512.ll
    M llvm/test/CodeGen/X86/mul64.ll

  Log Message:
  -----------
  [X86] Replace X32 check prefixes with X86

We try to only use X32 for gnux32 triple tests.


  Commit: bc879a90193151ef39f3915f6687423c18875486
      https://github.com/llvm/llvm-project/commit/bc879a90193151ef39f3915f6687423c18875486
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M llvm/test/CodeGen/X86/mul-i256.ll

  Log Message:
  -----------
  [X86] mul-i256.ll - simplify function attributes and remove cfi noise


  Commit: 754a8add57098ef71e4a51a9caa0cc175e94377d
      https://github.com/llvm/llvm-project/commit/754a8add57098ef71e4a51a9caa0cc175e94377d
  Author: Cullen Rhodes <cullen.rhodes at arm.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td
    M mlir/test/Dialect/LLVMIR/invalid.mlir
    M mlir/test/Dialect/LLVMIR/roundtrip.mlir

  Log Message:
  -----------
  [mlir][llvm] Add experimental.vector.interleave2 intrinsic (#79270)


  Commit: 6d242914d784ed848d0f87bf6df9b6b2f2b27566
      https://github.com/llvm/llvm-project/commit/6d242914d784ed848d0f87bf6df9b6b2f2b27566
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M clang/test/CodeGen/SystemZ/unaligned-symbols.c
    A clang/test/Driver/s390x-unaligned-symbols.c

  Log Message:
  -----------
  [Clang, SystemZ] Split test into Driver and CodeGen parts (NFC) (#79808)

The test added in #73511 currently fails in
CLANG_DEFAULT_PIE_ON_LINUX=OFF configuration, because it uses the clang
driver in a codegen test.

Split the test into two, a driver test that checks that the appropriate
target feature is passed, and a codegen test that uses cc1.


  Commit: 4a3d187075b2e3795b3e00e6ebb7a2a42143f3bb
      https://github.com/llvm/llvm-project/commit/4a3d187075b2e3795b3e00e6ebb7a2a42143f3bb
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M libc/src/time/gpu/time_utils.h

  Log Message:
  -----------
  [libc][NFC] Simplify AMDGPU constant frequency checks (#79653)

Summary:
The AMDGPU fixed frequency clock is fixed to a chip dependent frequency.
More modern chips have started to fix this at known values of 25 MHz or
100 MHz, so this function forwards those values. This was done using the
individual architectures. This patch simply uses the more concise
`__GFXn__` macro which indicates the major revision


  Commit: a372460538595d4c5a769c4c248fe7b1b4d69882
      https://github.com/llvm/llvm-project/commit/a372460538595d4c5a769c4c248fe7b1b4d69882
  Author: Enna1 <xumingjie.enna1 at bytedance.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M compiler-rt/lib/sanitizer_common/sanitizer_atomic_clang_other.h
    M compiler-rt/lib/sanitizer_common/sanitizer_atomic_clang_x86.h

  Log Message:
  -----------
  [Sanitizer][NFC] Fix up comment in atomic_store of sanitizer_atomic_clang_*.h


  Commit: d93f850c6f11aa315c83a34ec59210e1755528f8
      https://github.com/llvm/llvm-project/commit/d93f850c6f11aa315c83a34ec59210e1755528f8
  Author: Jason Eckhardt <jason.eckhardt at solana.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M llvm/include/llvm/MC/MCDecoderOps.h
    A llvm/test/TableGen/trydecode-emission4.td
    M llvm/utils/TableGen/DecoderEmitter.cpp

  Log Message:
  -----------
  [TableGen] Extend OPC_ExtractField/OPC_CheckField start value widths. (#79723)

Both OPC_ExtractField and OPC_CheckField are currently defined to take
an unsigned 8-bit start value. On some architectures with long
instruction words, this value can silently overflow, resulting in a bad
decoder table.

This patch changes each to take a ULE128B-encoded start value instead.
Additionally, a range assertion is added for the 8-bit length to
prominently notify a user in case that field ever overflows.

This problem isn't currently exposed upstream since all in-tree targets
use small instruction words (i.e., bitwidth <= 64 bits). It does show up
in at least one downstream target with instructions > 64 bits long.

Co-authored-by: Jason Eckhardt <jeckhardt at nvidia.com>


  Commit: 8a074c84ff01f8581b4a769c4af3abab9731fe5b
      https://github.com/llvm/llvm-project/commit/8a074c84ff01f8581b4a769c4af3abab9731fe5b
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M llvm/test/CodeGen/X86/fixup-bw-copy.ll

  Log Message:
  -----------
  [X86] fixup-bw-copy.ll - replace X32 check prefixes with X86

We try to only use X32 for gnux32 triple tests.


  Commit: ccb2810ee33588ad0707e51bb31af8fec5e39f76
      https://github.com/llvm/llvm-project/commit/ccb2810ee33588ad0707e51bb31af8fec5e39f76
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M llvm/test/CodeGen/X86/anyext.ll

  Log Message:
  -----------
  [X86] anyext.ll - replace X32 check prefixes with X86

We try to only use X32 for gnux32 triple tests.


  Commit: 06f5b956a0ba3bb1cad7d94707398a97750d8b37
      https://github.com/llvm/llvm-project/commit/06f5b956a0ba3bb1cad7d94707398a97750d8b37
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M llvm/test/CodeGen/X86/pmovsx-inreg.ll

  Log Message:
  -----------
  [X86] pmovsx-inreg.ll - replace X32 check prefixes with X86

We try to only use X32 for gnux32 triple tests.


  Commit: eb56bc2b105c792bafd36ef35c0e6eda9f0b822e
      https://github.com/llvm/llvm-project/commit/eb56bc2b105c792bafd36ef35c0e6eda9f0b822e
  Author: Guillaume Chatelet <gchatelet at google.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M libc/src/math/generic/asinf.cpp
    M libc/src/math/generic/sincosf.cpp
    M libc/test/UnitTest/FPMatcher.h
    M libc/test/src/__support/FPUtil/fpbits_test.cpp
    M libc/test/src/stdio/sprintf_test.cpp
    M libc/test/src/stdio/sscanf_test.cpp

  Log Message:
  -----------
  [libc] Remove specific nan payload in math functions (#79165)


  Commit: 5e3fc9c37f01c75fad306db71b5235bdc300194b
      https://github.com/llvm/llvm-project/commit/5e3fc9c37f01c75fad306db71b5235bdc300194b
  Author: Tom Stellard <tstellar at redhat.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M .github/workflows/llvm-tests.yml

  Log Message:
  -----------
  [workflows] Fix argument passing in abi-dump jobs (#79658)

This was broken by 859e6aa1008b80d9b10657bac37822a32ee14a23, which added
quotes around the EXTRA_ARGS variable.


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

  Changed paths:
    M clang/lib/Basic/Targets/AMDGPU.cpp
    M clang/test/CodeGenOpenCL/builtins-amdgcn-wave64.cl
    M clang/test/Preprocessor/predefined-arch-macros.c

  Log Message:
  -----------
  [AMDGPU] Do not emit arch dependent macros with unspecified cpu (#79660)

Summary:
Currently, the AMDGPU toolchain accepts not passing `-mcpu` as a means
to create a sort of "generic" IR. The resulting IR will not contain any
target dependent attributes and can then be inserted into another
program via `-mlink-builtin-bitcode` to inherit its attributes.

However, there are a handful of macros that can leak incorrect
information when compiling for an unspecified architecture. Currently,
things like the wavefront size will default to 64, which is actually
variable. We should not expose these macros unless it is known.


  Commit: 8b429fc3fe2d5a9c55f953b4d0eecdb1f9f6fe06
      https://github.com/llvm/llvm-project/commit/8b429fc3fe2d5a9c55f953b4d0eecdb1f9f6fe06
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

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

  Log Message:
  -----------
  [AMDGPU] Update SITargetLowering::getAddrModeArguments (#78740)

Handle every intrinsic for which getTgtMemIntrinsic returns with
Info.ptrVal set to one of the intrinsic's operands. A bunch of these
cases were missing.


  Commit: cfb702676cc181877482a282fe7e07109a24dc9d
      https://github.com/llvm/llvm-project/commit/cfb702676cc181877482a282fe7e07109a24dc9d
  Author: Shengchen Kan <shengchen.kan at intel.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86FixupVectorConstants.cpp
    M llvm/lib/Target/X86/X86InstrFoldTables.cpp
    M llvm/lib/Target/X86/X86InstrFoldTables.h

  Log Message:
  -----------
  [X86][NFC] Rename lookupBroadcastFoldTable to lookupBroadcastFoldTableBySize

Address RKSimon's comments in #79761


  Commit: ce72f78f37199d693a65b6c7c1d637fafbb13727
      https://github.com/llvm/llvm-project/commit/ce72f78f37199d693a65b6c7c1d637fafbb13727
  Author: Pierre van Houtryve <pierre.vanhoutryve at amd.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
    M llvm/test/CodeGen/AMDGPU/reassoc-mul-add-1-to-mad.ll

  Log Message:
  -----------
  [AMDGPU] Fix mul combine for MUL24 (#79110)

MUL24 can now return a i64 for i32 operands, but the combine was never
updated to handle this case. Extend the operand when rewriting the ADD
to handle it.

Fixes SWDEV-436654


  Commit: df3f0eeeacbe50a6e4b2ce7c2a12f96e7b6ce5e0
      https://github.com/llvm/llvm-project/commit/df3f0eeeacbe50a6e4b2ce7c2a12f96e7b6ce5e0
  Author: jeanPerier <jperier at nvidia.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M flang/lib/Optimizer/CodeGen/BoxedProcedure.cpp
    M flang/test/Fir/boxproc-2.fir

  Log Message:
  -----------
  [flang] Fix invalid iterator erasure in boxed-procedure pass (#79830)

The code in BoxedProcedureRewrite was erasing the mappings <old type,
new type> once "new type" was fully translated. This was done in an
invalid way because the map was an llvm::SmallMapVector that do not have
stable iterators, and new items were added to the map between the
creation of the iterator and its erasure.

It is anyway not needed and expensive to erase the types (see
llvm::MapVector note), the cache can be used for the whole pass, which
is very beneficial in the context of an apps using "big derived types"
(dozens of components/parents).


  Commit: d833b9d677c9dd0a35a211e2fdfada21ea9a464b
      https://github.com/llvm/llvm-project/commit/d833b9d677c9dd0a35a211e2fdfada21ea9a464b
  Author: Alex Bradbury <asb at igalia.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M clang/test/CodeGen/RISCV/riscv-func-attr-target.c
    M clang/test/Preprocessor/riscv-target-features.c
    M llvm/docs/RISCVUsage.rst
    M llvm/docs/ReleaseNotes.rst
    M llvm/lib/Support/RISCVISAInfo.cpp
    M llvm/lib/Target/RISCV/RISCVFeatures.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoZicond.td
    M llvm/test/CodeGen/RISCV/attributes.ll
    M llvm/test/CodeGen/RISCV/cmov-branch-opt.ll
    M llvm/test/CodeGen/RISCV/condbinops.ll
    M llvm/test/CodeGen/RISCV/condops.ll
    M llvm/test/CodeGen/RISCV/select-binop-identity.ll
    M llvm/test/CodeGen/RISCV/select.ll
    M llvm/test/CodeGen/RISCV/short-forward-branch-opt.ll
    M llvm/test/CodeGen/RISCV/xaluo.ll
    M llvm/test/MC/RISCV/rv32zicond-invalid.s
    M llvm/test/MC/RISCV/rv32zicond-valid.s
    M llvm/unittests/Support/RISCVISAInfoTest.cpp

  Log Message:
  -----------
  [RISCV] Graduate Zicond to non-experimental (#79811)

The Zicond extension was ratified in the last few months, with no
changes that affect the LLVM implementation. Although there's surely
more tuning that could be done about when to select Zicond or not, there
are no known correctness issues. Therefore, we should mark support as
non-experimental.


  Commit: d133ada9460aad6d60393fb1260082e62d640500
      https://github.com/llvm/llvm-project/commit/d133ada9460aad6d60393fb1260082e62d640500
  Author: Shengchen Kan <shengchen.kan at intel.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

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

  Log Message:
  -----------
  [X86][CodeGen] Add missing BroadcastTable1 in X86MemUnfoldTable


  Commit: ee08b992514bd1556c38f42409d92728af3451f7
      https://github.com/llvm/llvm-project/commit/ee08b992514bd1556c38f42409d92728af3451f7
  Author: Jimmy Z <51149050+jimmy-zx at users.noreply.github.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M clang/bindings/python/clang/cindex.py
    A clang/bindings/python/tests/cindex/test_rewrite.py
    M clang/docs/ReleaseNotes.rst

  Log Message:
  -----------
  [libclang/python] Expose Rewriter to the python binding (#77269)

Exposes `CXRewriter` API to the python binding as `class Rewriter`.


  Commit: 70f5b220509cafb3dc4e876e4feecb3dcca78dec
      https://github.com/llvm/llvm-project/commit/70f5b220509cafb3dc4e876e4feecb3dcca78dec
  Author: Michael Liao <michael.hliao at gmail.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M llvm/utils/TableGen/AsmMatcherEmitter.cpp

  Log Message:
  -----------
  [TableGen][AsmMatcher] Fix the range check on 'MatchClassKind'

- When selecting the minimal type for 'MatchClassKind' during the
  emission of 'MatchEntry' and 'OperandMatchEntry', two pre-defined
  kinds 'InvalidMatchClass' and 'OptionalMatchClass' are not taken into
  account.


  Commit: 169553688ca40d9a495f19e8ba2af1137e13cff8
      https://github.com/llvm/llvm-project/commit/169553688ca40d9a495f19e8ba2af1137e13cff8
  Author: Shengchen Kan <shengchen.kan at intel.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M llvm/include/llvm/Support/X86FoldTablesUtils.h
    M llvm/lib/Target/X86/X86InstrFoldTables.cpp
    M llvm/lib/Target/X86/X86InstrInfo.cpp

  Log Message:
  -----------
  [X86][NFC] Remove TB_FOLDED_BCAST and format code in X86InstrFoldTables.cpp


  Commit: 7c8ef76500b40c3b7cb65b839b61345b713aeb5a
      https://github.com/llvm/llvm-project/commit/7c8ef76500b40c3b7cb65b839b61345b713aeb5a
  Author: Yi Wu <43659785+yi-wu-arm at users.noreply.github.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M flang/docs/Intrinsics.md
    M flang/include/flang/Optimizer/Builder/IntrinsicCall.h
    M flang/lib/Evaluate/intrinsics.cpp
    M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
    A flang/test/Lower/Intrinsics/system-optional.f90
    A flang/test/Lower/Intrinsics/system.f90
    M flang/unittests/Runtime/CommandTest.cpp

  Log Message:
  -----------
  [flang] add SYSTEM runtime and lowering intrinsics support (#74309)

Calls std::system() function and pass the command,
cmd on Windows or shell on Linux.
Command parameter is required, exitstatus is optional.
call system(command)
call system(command, exitstatus)

It calls `execute_command_line` runtime function with `wait` set to true.
---------

Co-authored-by: Yi Wu <yiwu02 at wdev-yiwu02.arm.com>


  Commit: ae8005ffb6cd18900de8ed5a86f60a4a16975471
      https://github.com/llvm/llvm-project/commit/ae8005ffb6cd18900de8ed5a86f60a4a16975471
  Author: Alexandros Lamprineas <alexandros.lamprineas at arm.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M clang/test/Driver/aarch64-mcpu.c
    M clang/test/Misc/target-invalid-cpu-note.c
    M llvm/include/llvm/TargetParser/AArch64TargetParser.h
    M llvm/unittests/TargetParser/TargetParserTest.cpp

  Log Message:
  -----------
  [AArch64][TargetParser] Add mcpu alias for Microsoft Azure Cobalt 100. (#79614)

With a690e86 we added -mcpu/mtune=native support to handle the Microsoft
Azure Cobalt 100 CPU as a Neoverse N2. This patch adds a CPU alias in
TargetParser to maintain compatibility with GCC.


  Commit: 430c1fd50d774dc30a9628bcf60ce243f74ff376
      https://github.com/llvm/llvm-project/commit/430c1fd50d774dc30a9628bcf60ce243f74ff376
  Author: Gheorghe-Teodor Bercea <doru.bercea at amd.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M openmp/libomptarget/DeviceRTL/src/Parallelism.cpp

  Log Message:
  -----------
  [libomptarget][NFC] Outline parallel SPMD function (#78642)

This patch outlines the SPMD code path into a separate function that can
be called directly.


  Commit: 9520773c46777adbc1d489f831d6c93b8287ca0e
      https://github.com/llvm/llvm-project/commit/9520773c46777adbc1d489f831d6c93b8287ca0e
  Author: David Green <david.green at arm.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/test/CodeGen/AArch64/complex-deinterleaving-f16-add.ll

  Log Message:
  -----------
  [AArch64] Don't generate neon integer complex numbers with +sve2. NFC (#79829)

The condition for allowing integer complex number support could also
allow neon fixed length complex numbers if +sve2 was specified. This
tightens the condition to only allow integer complex number support for
scalable vectors.

We could generalize this in the future to generate SVE intrinsics for
fixed-length vectors, but for the moment this opts for the simpler fix.


  Commit: cbe5985ff7cd21924ed88b6a46fd5c04acc7fca8
      https://github.com/llvm/llvm-project/commit/cbe5985ff7cd21924ed88b6a46fd5c04acc7fca8
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M llvm/test/CodeGen/X86/shift-amount-mod.ll
    M llvm/test/CodeGen/X86/shift-and.ll
    M llvm/test/CodeGen/X86/shift-combine.ll

  Log Message:
  -----------
  [X86] Replace X32 check prefixes with X86

We try to only use X32 for gnux32 triple tests.


  Commit: f28430d577276bf58d96945a6919399baa6c2527
      https://github.com/llvm/llvm-project/commit/f28430d577276bf58d96945a6919399baa6c2527
  Author: Shengchen Kan <shengchen.kan at intel.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M llvm/include/llvm/Support/X86FoldTablesUtils.h
    M llvm/lib/Target/X86/X86InstrInfo.cpp

  Log Message:
  -----------
  [X86][CodeGen] Add entries for TB_BCAST_W in getBroadcastOpcode and fix typo


  Commit: 72d4fc1b4d5cfc4f7d50cc5cf1b315543c088f4d
      https://github.com/llvm/llvm-project/commit/72d4fc1b4d5cfc4f7d50cc5cf1b315543c088f4d
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M clang/lib/Basic/Targets/AMDGPU.cpp
    M clang/test/CodeGenOpenCL/builtins-amdgcn-wave64.cl
    M clang/test/Preprocessor/predefined-arch-macros.c

  Log Message:
  -----------
  Revert "[AMDGPU] Do not emit arch dependent macros with unspecified cpu (#79660)"

This reverts commit c9a6e993f7b349405b6c8f9244cd9cf0f56a6a81.

This breaks HIP code that incorrectly depended on GPU-specific macros to
be set. The code is totally wrong as using `__WAVEFRTONSIZE__` on the
host is absolutely meaningless, but it seems this entire corner of the
toolchain is fundmentally broken. Reverting for now to avoid breakages.


  Commit: 3e47e75febc8fefa19afe1e8ef2b15a106d2f791
      https://github.com/llvm/llvm-project/commit/3e47e75febc8fefa19afe1e8ef2b15a106d2f791
  Author: Slava Zakharin <szakharin at nvidia.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M flang/include/flang/Optimizer/Dialect/FIRType.h
    M flang/lib/Optimizer/CodeGen/Target.cpp
    M flang/lib/Optimizer/Dialect/FIRType.cpp
    M flang/lib/Optimizer/Transforms/LoopVersioning.cpp
    M flang/test/Transforms/loop-versioning.fir

  Log Message:
  -----------
  [flang] Use DataLayout for computing type size in LoopVersioning. (#79778)

The existing type size computation in LoopVersioning does not work
for REAL*10, because the compute element size is 10 bytes,
which violates the power-of-two assertion.
We'd better use the DataLayout for computing the storage size
of each element of an array of the given type.


  Commit: db6bf92123fbc82dd6e3da4f88e440415352692d
      https://github.com/llvm/llvm-project/commit/db6bf92123fbc82dd6e3da4f88e440415352692d
  Author: Justin Bogner <mail at justinbogner.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    A llvm/include/llvm/Support/DXILABI.h
    R llvm/include/llvm/Support/DXILOperationCommon.h
    M llvm/lib/Target/DirectX/DXILOpBuilder.cpp
    M llvm/utils/TableGen/DXILEmitter.cpp

  Log Message:
  -----------
  [DirectX] Rename DXILOperationCommon.h to DXILABI.h. NFC

This is a good place to put all of the ABI-sensitive DXIL values that
we'll need in both reading and writing contexts.

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


  Commit: 181eab27d244b9a9eb32d6716f9c38f7f3723356
      https://github.com/llvm/llvm-project/commit/181eab27d244b9a9eb32d6716f9c38f7f3723356
  Author: jeanPerier <jperier at nvidia.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M flang/include/flang/Evaluate/common.h
    M flang/include/flang/Lower/Bridge.h
    M flang/lib/Evaluate/shape.cpp
    M flang/lib/Lower/Bridge.cpp
    M flang/lib/Semantics/semantics.cpp
    A flang/test/Evaluate/rewrite07.f90
    M flang/unittests/Evaluate/expression.cpp
    M flang/unittests/Evaluate/folding.cpp
    M flang/unittests/Evaluate/intrinsics.cpp

  Log Message:
  -----------
  [flang] Set KIND in compiler generated COUNT for SIZE(PACK) (#79801)

Compiler was rewriting SIZE(PACK(x, MASK)) to COUNT(MASK). It was
wrapping the COUNT call without a KIND argument (leading to INTEGER(4)
result in the characteristics) in an Expr<ExtentType> (implying
INTEGER(8) result), this lead to inconsistencies that later hit verifier
errors in lowering.

Set the KIND argument to the KIND of ExtentType to ensure the built
expression is consistent.

This requires giving access to some safe place where the "kind" name can
be saved and turned into a CharBlock (count has a DIM argument that
require using the KIND keyword here). For the FoldingContext that belong
to SemanticsContext, this is the same string set as the one used by
SemanticsContext for similar purposes.


  Commit: 8c0a61125e52b137e45131773ec08bab3e2593e4
      https://github.com/llvm/llvm-project/commit/8c0a61125e52b137e45131773ec08bab3e2593e4
  Author: Will Hawkins <hawkinsw at obs.cr>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M libcxx/test/std/ranges/range.adaptors/range.chunk.by/range.chunk.by.iter/compare.pass.cpp
    M libcxx/test/std/ranges/range.adaptors/range.chunk.by/range.chunk.by.iter/decrement.pass.cpp
    M libcxx/test/std/ranges/range.adaptors/range.filter/iterator/arrow.pass.cpp
    M libcxx/test/std/ranges/range.adaptors/range.filter/iterator/base.pass.cpp
    M libcxx/test/std/ranges/range.adaptors/range.filter/iterator/ctor.parent_iter.pass.cpp
    M libcxx/test/std/ranges/range.adaptors/range.filter/iterator/decrement.pass.cpp
    M libcxx/test/std/ranges/range.adaptors/range.filter/iterator/deref.pass.cpp
    M libcxx/test/std/ranges/range.adaptors/range.filter/sentinel/base.pass.cpp
    M libcxx/test/std/ranges/range.adaptors/range.filter/sentinel/compare.pass.cpp
    M libcxx/test/std/ranges/range.adaptors/range.filter/sentinel/ctor.default.pass.cpp
    M libcxx/test/std/ranges/range.adaptors/range.filter/sentinel/ctor.parent.pass.cpp
    M libcxx/test/std/ranges/range.adaptors/range.filter/types.h

  Log Message:
  -----------
  [libcxx][NFC] Rename iterator/sentinel type template parameter names (#76201)

According to internally agreed upon best practices, type template
parameter names representing iterator types should be named `Iter`. For
type template parameters representing sentinel types, they should be
named `Sent`.

Signed-off-by: Will Hawkins <hawkinsw at obs.cr>


  Commit: ad7131864f5a1a23f8c8d054a5e31c9979edd497
      https://github.com/llvm/llvm-project/commit/ad7131864f5a1a23f8c8d054a5e31c9979edd497
  Author: Justin Bogner <mail at justinbogner.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M llvm/include/llvm/Frontend/HLSL/HLSLResource.h
    M llvm/include/llvm/Support/DXILABI.h
    M llvm/lib/Target/DirectX/DXILResource.cpp
    M llvm/lib/Target/DirectX/DXILResource.h

  Log Message:
  -----------
  [DirectX] Move DXIL ResourceKind and ElementType to DXILABI.h. NFC

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


  Commit: 2aef33230d3402878a837f9aaa37e37d0763d1ac
      https://github.com/llvm/llvm-project/commit/2aef33230d3402878a837f9aaa37e37d0763d1ac
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M llvm/test/CodeGen/X86/fast-isel-store.ll

  Log Message:
  -----------
  [X86] fast-isel-store.ll - cleanup check prefixes

32/64-bit triples and check prefixes were inverted, and missing unwind attribute to strip cfi noise


  Commit: 3ab5dbb1995982ab7d106e39a719daaea8bdfeee
      https://github.com/llvm/llvm-project/commit/3ab5dbb1995982ab7d106e39a719daaea8bdfeee
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M llvm/test/CodeGen/X86/sext-i1.ll

  Log Message:
  -----------
  [X86] sext-i1.ll - replace X32 check prefixes with X86

We try to only use X32 for gnux32 triple tests.


  Commit: 0a15ead01b6be095a87a405e63e9525ed123ac58
      https://github.com/llvm/llvm-project/commit/0a15ead01b6be095a87a405e63e9525ed123ac58
  Author: Antonio Frighetto <me at antoniofrighetto.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    A llvm/test/Transforms/BDCE/binops-multiuse.ll

  Log Message:
  -----------
  [BDCE] Introduce test for PR79688 (NFC)


  Commit: 20737825c9122b6e0a8912731cfa7e0558fe025d
      https://github.com/llvm/llvm-project/commit/20737825c9122b6e0a8912731cfa7e0558fe025d
  Author: Antonio Frighetto <me at antoniofrighetto.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M llvm/lib/Transforms/Scalar/BDCE.cpp
    M llvm/test/Transforms/BDCE/binops-multiuse.ll
    M llvm/test/Transforms/BDCE/dead-uses.ll

  Log Message:
  -----------
  [BDCE] Handle multi-use binary ops upon demanded bits

Simplify multi-use `and`/`or`/`xor` when these last
do not affect the demanded bits being considered.

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

Proofs: https://alive2.llvm.org/ce/z/EjuWHa.


  Commit: 7b0396faabce0cec470779ae5e3a851bedb2ac12
      https://github.com/llvm/llvm-project/commit/7b0396faabce0cec470779ae5e3a851bedb2ac12
  Author: Shafik Yaghmour <shafik.yaghmour at intel.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/Sema/SemaStmt.cpp
    M clang/test/SemaCXX/deduced-return-type-cxx14.cpp

  Log Message:
  -----------
  [Clang][Sema] Fix crash when type used in return statement contains errors (#79788)

In Sema in `BuildReturnStmt(...)` when we try to determine is the type
is move eligible or copy elidable we don't currently check of the init
of the `VarDecl` contain errors or not. This can lead to a crash since
we may send a type that is not complete into `getTypeInfo(...)` which
does not allow this.

This fixes: https://github.com/llvm/llvm-project/issues/63244
https://github.com/llvm/llvm-project/issues/79745


  Commit: d5e8a273fddcf4abbfc59d16f08e735f7cefff93
      https://github.com/llvm/llvm-project/commit/d5e8a273fddcf4abbfc59d16f08e735f7cefff93
  Author: Arthur Eubanks <aeubanks at google.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M llvm/docs/DeveloperPolicy.rst
    M llvm/docs/GettingStarted.rst

  Log Message:
  -----------
  [docs] Remove second "getting sources" section in GettingStarted.rst (#79663)

The very beginning already talks about how to git clone the repo. The
section about checking out specific versions doesn't really belong in
GettingStarted and seems unnecessary.


  Commit: 155f24b11e21a187ae8b5cd09665e90406f61e33
      https://github.com/llvm/llvm-project/commit/155f24b11e21a187ae8b5cd09665e90406f61e33
  Author: Nilanjana Basu <n_basu at apple.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M llvm/test/Transforms/LoopVectorize/AArch64/interleave_count_for_estimated_tc.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/interleave_count_for_known_tc.ll

  Log Message:
  -----------
  [Tests][LV][AArch64] Pre-commit tests for changing loop interleaving count computation for loops that need to run scalar iterations (#79640)

This patch contains a set of pre-commit tests for changing the loop interleaving count computation in a subsequent patch in order to address loops that need to execute at least a single scalar iteration in the epilogue.


  Commit: 649ecf88ed8814fcd95ca7fa34e9aeaf5728e823
      https://github.com/llvm/llvm-project/commit/649ecf88ed8814fcd95ca7fa34e9aeaf5728e823
  Author: Adrian Prantl <aprantl at apple.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M llvm/include/module.modulemap

  Log Message:
  -----------
  Add missing textual header to module map


  Commit: c07d3343dc263fce3296f92203944f29b8ecc25a
      https://github.com/llvm/llvm-project/commit/c07d3343dc263fce3296f92203944f29b8ecc25a
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    A llvm/test/Transforms/SLPVectorizer/X86/minbitwidth-node-with-multi-users.ll

  Log Message:
  -----------
  [SLP][NFC]Add a test for PR79743 with incorrect node demotion, NFC.


  Commit: 61384850c5950b8c5ee0abd75982f5cad8f98536
      https://github.com/llvm/llvm-project/commit/61384850c5950b8c5ee0abd75982f5cad8f98536
  Author: Jason Molenda <jason at molenda.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M lldb/bindings/python/python-swigsafecast.swig
    M lldb/bindings/python/python-wrapper.swig
    M lldb/include/lldb/API/SBEvent.h
    M lldb/include/lldb/API/SBStream.h
    M lldb/include/lldb/Interpreter/Interfaces/ScriptedInterface.h
    R lldb/include/lldb/Interpreter/Interfaces/ScriptedThreadPlanInterface.h
    M lldb/include/lldb/Interpreter/ScriptInterpreter.h
    M lldb/include/lldb/Target/ThreadPlanPython.h
    M lldb/include/lldb/lldb-forward.h
    M lldb/source/Interpreter/ScriptInterpreter.cpp
    M lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/CMakeLists.txt
    M lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedPlatformPythonInterface.cpp
    M lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedProcessPythonInterface.cpp
    M lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedPythonInterface.cpp
    M lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedPythonInterface.h
    R lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedThreadPlanPythonInterface.cpp
    R lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedThreadPlanPythonInterface.h
    M lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedThreadPythonInterface.cpp
    M lldb/source/Plugins/ScriptInterpreter/Python/SWIGPythonBridge.h
    M lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
    M lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPythonImpl.h
    M lldb/source/Target/ThreadPlanPython.cpp
    M lldb/test/API/functionalities/step_scripted/Steps.py
    M lldb/test/API/functionalities/thread_plan/wrap_step_over.py
    M lldb/unittests/ScriptInterpreter/Python/PythonTestSuite.cpp

  Log Message:
  -----------
  Revert "[lldb] Make use of Scripted{Python,}Interface for ScriptedThreadPlan (#70392)"

Temporarily revert to unblock the CI bots, this is breaking the -DLLVM_ENABLE_MODULES=On
modules style build.  I've notified Ismail.

This reverts commit 888501bc631c4f6d373b4081ff6c504a1ce4a682.


  Commit: eb98b5003cacfc01102557744655f6c2fc02b0cb
      https://github.com/llvm/llvm-project/commit/eb98b5003cacfc01102557744655f6c2fc02b0cb
  Author: Alexander Shaposhnikov <6532716+alexander-shaposhnikov at users.noreply.github.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M llvm/test/Transforms/ConstraintElimination/abs.ll

  Log Message:
  -----------
  [ConstraintElim] Add tests for llvm.abs >= 0 (#79068)

Add tests for llvm.abs >= 0.
This is a preparation for
https://github.com/llvm/llvm-project/pull/79070 .


  Commit: 8d89dd4a5872503d6d5b070bdb48d20973156e07
      https://github.com/llvm/llvm-project/commit/8d89dd4a5872503d6d5b070bdb48d20973156e07
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/X86/minbitwidth-node-with-multi-users.ll

  Log Message:
  -----------
  [SLP]Fix PR79743: Check that all users are demoted before trying to
demote the tree entry.

Need to check if all user nodes are marked for demotion before demoting
the node. Otherwise, some data info might be lost after vectorization.


  Commit: 27e67cdb31bed4c346af925686c031d57aef9846
      https://github.com/llvm/llvm-project/commit/27e67cdb31bed4c346af925686c031d57aef9846
  Author: Hristo Hristov <hristo.goshev.hristov at gmail.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M libcxx/docs/ReleaseNotes/19.rst
    M libcxx/docs/Status/Cxx2cPapers.csv
    M libcxx/docs/Status/FormatIssues.csv
    M libcxx/include/__config
    M libcxx/include/__format/format_arg.h
    M libcxx/include/__format/format_context.h
    M libcxx/include/format
    A libcxx/test/std/utilities/format/format.arguments/format.arg/visit.pass.cpp
    A libcxx/test/std/utilities/format/format.arguments/format.arg/visit.return_type.pass.cpp
    A libcxx/test/std/utilities/format/format.arguments/format.arg/visit_format_arg.deprecated.verify.cpp
    M libcxx/test/std/utilities/format/format.arguments/format.arg/visit_format_arg.pass.cpp
    M libcxx/test/std/utilities/format/format.arguments/format.args/get.pass.cpp
    M libcxx/test/support/test_basic_format_arg.h
    M libcxx/test/support/test_macros.h
    M libcxx/utils/generate_feature_test_macro_components.py

  Log Message:
  -----------
  Reland: [libc++][format] P2637R3: Member visit (std::basic_format_arg) #76449 (#79032)

Deleted the offending test case.


`libcxx/test/std/utilities/format/format.arguments/format.arg/visit.return_type.pass.cpp`
lines: 134-135:   
>   test<Context, bool, long>(true, 192812079084L);
     test<Context, bool, long>(false, 192812079084L);
     
 Relands: https://github.com/llvm/llvm-project/pull/76449
Reverted in:
https://github.com/llvm/llvm-project/commit/02f95b77515fe18ed1076b94cbb850ea0cf3c77e

---------

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


  Commit: 5dce6353b5e42248c7271f7694613831a6d427de
      https://github.com/llvm/llvm-project/commit/5dce6353b5e42248c7271f7694613831a6d427de
  Author: Adrian Prantl <aprantl at apple.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M lldb/include/lldb/Target/PathMappingList.h
    M lldb/include/lldb/Target/Platform.h
    M lldb/include/lldb/Target/Process.h

  Log Message:
  -----------
  Add missing includes


  Commit: 547c395b279a93357082ac06cf3e8fe37ebfc3fe
      https://github.com/llvm/llvm-project/commit/547c395b279a93357082ac06cf3e8fe37ebfc3fe
  Author: Jason Molenda <jason at molenda.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M lldb/test/API/functionalities/step_scripted/TestStepScripted.py

  Log Message:
  -----------
  Revert "[lldb/Test] Temporarily XFAIL TestStepScripted.py"

Also revert this patch until Ismail can re-land.

This reverts commit febb4c42b192ed7c88c17f91cb903a59acf20baf.


  Commit: 295059409f75e13bf000d536cb8d287e35153c83
      https://github.com/llvm/llvm-project/commit/295059409f75e13bf000d536cb8d287e35153c83
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

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

  Log Message:
  -----------
  [PatternMatch] Use dyn_cast in CastInst_match instead of checking opcode. NFC (#79878)

Using dyn_cast allows us to use CastInst::getOperand instead of
Instruction::getOperand. This is more efficient since
CastInst::getOperand doesn't need to check how the operands are stored.
Instruction::getOperand has to consider HungOffUses.


  Commit: c576ab6bc55316061fef5a275f30c124e2572182
      https://github.com/llvm/llvm-project/commit/c576ab6bc55316061fef5a275f30c124e2572182
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M libcxx/test/std/containers/sequences/array/size_and_alignment.compile.pass.cpp

  Log Message:
  -----------
  [libc++] Avoid including libc++ private header in std/ test (#79856)

Fixes #79783


  Commit: eac8d713a6682417d06f5ee7f90a8ce54a281df8
      https://github.com/llvm/llvm-project/commit/eac8d713a6682417d06f5ee7f90a8ce54a281df8
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M .github/workflows/libcxx-build-and-test.yaml

  Log Message:
  -----------
  [libc++][ci] Update upload-artifact at v3 and hashpin the version (#79854)

The upload-artifact at v3 action is using Node 16, which is reaching EOL.
As a result, we are getting warnings prompting us to move our jobs over
to the latest version of upload-artifact.


  Commit: d9f1791a0a1c513349df7a19ce054a90e6b504c5
      https://github.com/llvm/llvm-project/commit/d9f1791a0a1c513349df7a19ce054a90e6b504c5
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

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

  Log Message:
  -----------
  [libc++] Move release note to the right section


  Commit: 0039a2ff4fe98ce54654e5f4da90aeee718e1d41
      https://github.com/llvm/llvm-project/commit/0039a2ff4fe98ce54654e5f4da90aeee718e1d41
  Author: David Majnemer <david.majnemer at gmail.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M mlir/lib/Conversion/GPUToNVVM/LowerGpuOpsToNVVMOps.cpp
    M mlir/test/Conversion/GPUToNVVM/gpu-to-nvvm.mlir

  Log Message:
  -----------
  [mlir][gpu] Add support for lowering math.erf to __nv_erf (#79848)


  Commit: faf675ce34ee1e2c6105e9a816f220412fd2f8d5
      https://github.com/llvm/llvm-project/commit/faf675ce34ee1e2c6105e9a816f220412fd2f8d5
  Author: Aiden Grossman <agrossman154 at yahoo.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M llvm/tools/llvm-exegesis/lib/Analysis.cpp
    M llvm/tools/llvm-exegesis/lib/Analysis.h
    M llvm/tools/llvm-exegesis/lib/Assembler.cpp
    M llvm/tools/llvm-exegesis/lib/BenchmarkRunner.cpp
    M llvm/tools/llvm-exegesis/lib/BenchmarkRunner.h
    M llvm/tools/llvm-exegesis/lib/Clustering.cpp
    M llvm/tools/llvm-exegesis/lib/LatencyBenchmarkRunner.cpp
    M llvm/tools/llvm-exegesis/lib/LlvmState.cpp
    M llvm/tools/llvm-exegesis/lib/MCInstrDescView.cpp
    M llvm/tools/llvm-exegesis/lib/Mips/Target.cpp
    M llvm/tools/llvm-exegesis/lib/PerfHelper.cpp
    M llvm/tools/llvm-exegesis/lib/PerfHelper.h
    M llvm/tools/llvm-exegesis/lib/ProgressMeter.h
    M llvm/tools/llvm-exegesis/lib/SchedClassResolution.cpp
    M llvm/tools/llvm-exegesis/lib/Target.cpp
    M llvm/tools/llvm-exegesis/lib/X86/Target.cpp
    M llvm/tools/llvm-exegesis/lib/X86/X86Counter.cpp
    M llvm/tools/llvm-exegesis/lib/X86/X86Counter.h
    M llvm/tools/llvm-exegesis/llvm-exegesis.cpp

  Log Message:
  -----------
  [llvm-exegesis] Remove llvm prefix where unnecessary (#79802)

This patch removes the llvm:: prefix within llvm-exegesis where it is
not necessary. This is most occurrences of the prefix within exegesis as
exegesis is within the llvm namespace. This patch makes things more
consistent as the vast majority of the code did not use the llvm::
prefix for anything.


  Commit: 3d0a689eb72aef639347edbec4608e631d5208a1
      https://github.com/llvm/llvm-project/commit/3d0a689eb72aef639347edbec4608e631d5208a1
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M llvm/lib/ProfileData/Coverage/CoverageMapping.cpp

  Log Message:
  -----------
  [llvm-cov] Simplify and optimize MC/DC computation (#79727)

Update code from https://reviews.llvm.org/D138847

`buildTestVector` is a standard DFS (walking a reduced ordered binary
decision diagram). Avoid shouldCopyOffTestVectorFor{True,False}Path
complexity and redundant `Map[ID]` lookups.

`findIndependencePairs` unnecessarily uses four nested loops (n<=6) to
find independence pairs. Instead, enumerate the two execution vectors
and find the number of mismatches. This algorithm can be optimized using
the marking function technique described in _Efficient Test Coverage
Measurement for MC/DC,  2013_, but this may be overkill.


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

  Changed paths:
    M clang/include/clang/Basic/BuiltinsNVPTX.def
    M clang/test/CodeGen/builtins-nvptx.c
    M llvm/include/llvm/IR/IntrinsicsNVVM.td
    M llvm/lib/Target/NVPTX/NVPTX.td
    M llvm/lib/Target/NVPTX/NVPTXIntrinsics.td
    A llvm/test/CodeGen/NVPTX/activemask.ll

  Log Message:
  -----------
  [NVPTX] Add 'activemask' builtin and intrinsic support (#79768)

Summary:
This patch adds support for getting the 'activemask' instruction's value
without needing to use inline assembly. See the relevant PTX reference
for details.


https://docs.nvidia.com/cuda/parallel-thread-execution/index.html#parallel-synchronization-and-communication-instructions-activemask


  Commit: 5f12cc912ac90a2511f2a53c45dc9250945da18c
      https://github.com/llvm/llvm-project/commit/5f12cc912ac90a2511f2a53c45dc9250945da18c
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M clang/include/clang/Basic/BuiltinsNVPTX.def
    M clang/test/CodeGen/builtins-nvptx.c
    M llvm/include/llvm/IR/IntrinsicsNVVM.td
    M llvm/lib/Target/NVPTX/NVPTXIntrinsics.td
    A llvm/test/CodeGen/NVPTX/nanosleep.ll

  Log Message:
  -----------
  [NVPTX] Add builtin support for 'nanosleep' PTX instrunction (#79888)

Summary:
This patch adds a builtin for the `nanosleep` PTX function. It takes
either an immediate or a register and sleeps for [0, 2t] nanoseconds
given t. More information at the documentation:

https://docs.nvidia.com/cuda/parallel-thread-execution/index.html#miscellaneous-instructions-nanosleep


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

  Changed paths:
    M clang/include/clang/Basic/BuiltinsNVPTX.def
    M clang/test/CodeGen/builtins-nvptx.c
    M llvm/include/llvm/IR/IntrinsicsNVVM.td
    M llvm/lib/Target/NVPTX/NVPTXIntrinsics.td
    M llvm/test/CodeGen/NVPTX/intrinsics.ll

  Log Message:
  -----------
  [NVPTX] Add builtin for 'exit' handling (#79777)

Summary:
The PTX ISA has always supported the 'exit' instruction to terminate
individual threads. This patch adds a builtin to handle it. See the PTX
documentation for further details.

https://docs.nvidia.com/cuda/parallel-thread-execution/index.html#control-flow-instructions-exit


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

  Changed paths:
    M clang/include/clang/Basic/BuiltinsNVPTX.def
    M clang/test/CodeGen/builtins-nvptx.c
    M llvm/include/llvm/IR/IntrinsicsNVVM.td
    M llvm/lib/Target/NVPTX/NVPTXIntrinsics.td
    M llvm/test/CodeGen/NVPTX/intrinsics.ll

  Log Message:
  -----------
  [NVPTX] Add builtin support for 'globaltimer' (#79765)

Summary:
This patch adds support for `globaltimer` to match `clock` and
`clock64`. See the PTX ISA reference for details. This patch does not
implement the `hi` or `lo` variants for brevity as they can be obtained
from this with the cost of an additional register.

https://docs.nvidia.com/cuda/parallel-thread-execution/index.html#special-registers-globaltimer-globaltimer-lo-globaltimer-hi


  Commit: 9a1ca245c8bc60b1ca12cd906fb31130801d977e
      https://github.com/llvm/llvm-project/commit/9a1ca245c8bc60b1ca12cd906fb31130801d977e
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M lld/ELF/InputFiles.cpp
    M lld/test/ELF/warn-backrefs.s

  Log Message:
  -----------
  [ELF] --warn-backrefs: --defsym does not make a backward reference

The interaction between --warn-backrefs was not tested, but if
--defsym-created reference causes archive member extraction, it seems
reasonable to suppress the diagnostic, which was the behavior before #78944.


  Commit: c492eb6b28a1605e943b9c41071597fd1eda032c
      https://github.com/llvm/llvm-project/commit/c492eb6b28a1605e943b9c41071597fd1eda032c
  Author: Nilanjana Basu <n_basu at apple.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/test/Transforms/LoopVectorize/AArch64/interleave_count_for_estimated_tc.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/interleave_count_for_known_tc.ll

  Log Message:
  -----------
  [LV] Update interleaving count computation when scalar epilogue loop needs to run at least once (#79651)

Update loop interleaving count computation to address loops that require at least one scalar iteration in the epilogue loop. For this case, the available trip count for interleaving the loop is one less.


  Commit: 74bebee08e52ae4758bba4fc8bbb781fcaee1e54
      https://github.com/llvm/llvm-project/commit/74bebee08e52ae4758bba4fc8bbb781fcaee1e54
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M flang/lib/Semantics/runtime-type-info.cpp
    A flang/test/Semantics/typeinfo08.f90

  Log Message:
  -----------
  [flang] Fix compiler crash in semantics (#79609)

The runtime type information table generator couldn't handle a null
pointer returned correctly for a original (not instantiated) derived
type with kind parameters.

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


  Commit: 8dbedf49d7c6e8e6e3212b8be633780e5c4f0ee3
      https://github.com/llvm/llvm-project/commit/8dbedf49d7c6e8e6e3212b8be633780e5c4f0ee3
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M compiler-rt/lib/sanitizer_common/symbolizer/scripts/build_symbolizer.sh
    M compiler-rt/lib/sanitizer_common/symbolizer/scripts/global_symbols.txt

  Log Message:
  -----------
  [sanitizer] Allow *___lcxx_override symbolse in symbolizer (#79904)

We don't intercept them, and they are not called and used only as
markers anyway.

These symbols introduced with #69498.


  Commit: e6fdbd17769d626c66e087b0fd9bbda0ea69194d
      https://github.com/llvm/llvm-project/commit/e6fdbd17769d626c66e087b0fd9bbda0ea69194d
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M flang/runtime/numeric.cpp

  Log Message:
  -----------
  [flang][runtime] Add special-case faster path to real MOD/MODULO (#79625)

When a real-valued reference to the MOD/MODULO intrinsic functions has
operands that are exact integers, use the fast exact integer algorithm
rather than calling std::fmod.


  Commit: c82f3caf5683a443692162d9fbebc31019af7ce8
      https://github.com/llvm/llvm-project/commit/c82f3caf5683a443692162d9fbebc31019af7ce8
  Author: Evgenii Stepanov <eugeni.stepanov at gmail.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

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

  Log Message:
  -----------
  [scudo] Add StackDepot lock to enable/disable. (#79670)

Scudo grabs all allocator locks in a pthread_atfork before the fork, and releases them after. This allows malloc to be used in a fork child of a multithreaded process, which is expressly forbidden by the standard, but very widely used. For example, Android's init uses std::string after fork when spawning services in android::init::EnterNamespaces and other places.

Any lock that is necessary to serve an allocator call must be handled this way. Otherwise there is a possibility that the lock is held during the call to fork, which results in it being held forever in the child process, and the next operation that needs it deadlocks.


  Commit: d6e07e084511cac56c6e468a444ecbf2de3489b9
      https://github.com/llvm/llvm-project/commit/d6e07e084511cac56c6e468a444ecbf2de3489b9
  Author: Arthur Eubanks <aeubanks at google.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

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

  Log Message:
  -----------
  [X86] Treat __ehdr_start as large (#79884)

The __ehdr_start symbol is added by the linker and points to the ELF
file headers, which can be very far away from text. Treat it as a large
symbol under the medium/large code models. Performance to access
__ehdr_start is almost certainly not important.

There are a couple of other symbols that the linker adds [1], but this
is the most relevant one that may be far away from text.

[1]
https://github.com/llvm/llvm-project/blob/547c395b279a93357082ac06cf3e8fe37ebfc3fe/lld/ELF/Writer.cpp#L226


  Commit: d83c97714756e828c9c7091aa8294e022c93a454
      https://github.com/llvm/llvm-project/commit/d83c97714756e828c9c7091aa8294e022c93a454
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M flang/lib/Evaluate/fold-implementation.h
    A flang/test/Semantics/generic08.f90

  Log Message:
  -----------
  [flang] Prevent bad expression rewrite 0*ARR -> 0 (#79853)

Don't rewrite 0*X to 0 if X is not scalar. Up until now this hasn't
shown up as a bug because a scalar 0 works in nearly all expressions
where an array would be expected. But not in all cases -- this bad
rewrite can cause generic procedure resolution to fail when it causes an
actual argument to have an unsupported rank.


  Commit: 37180ed7435d28282ff4ccc9fbcbed04124ef8c0
      https://github.com/llvm/llvm-project/commit/37180ed7435d28282ff4ccc9fbcbed04124ef8c0
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M flang/docs/Extensions.md
    M flang/include/flang/Common/Fortran-features.h
    M flang/lib/Semantics/check-declarations.cpp
    M flang/lib/Semantics/expression.cpp
    M flang/lib/Semantics/mod-file.cpp
    M flang/test/Semantics/generic05.F90
    M flang/test/Semantics/generic07.f90
    M flang/test/Semantics/resolve17.f90
    M flang/test/Semantics/resolve53.f90
    M flang/test/Semantics/resolve54.f90
    M flang/test/Semantics/resolve63.f90
    M flang/test/Semantics/resolve65.f90
    M flang/test/Semantics/resolve96.f90

  Log Message:
  -----------
  [flang] Turn "error" cases into warning for "indistinguishable" specific procedures (#79621)

When a generic procedure interface, either declared or the result of
    merging two use-associated generics, has two specific procedures
    that are not distinguishable according to the rules in F'2023
    subclause 15.4.3.4.5, emit a portability warning rather than a
    hard error message.  The rules in that subclause are not adequate
    to detect pairs of specific procedures that admit an ambiguous
    reference, as demonstrated by a case that arose in pFUnit.  Further,
    these distinguishability checks, even if sufficient to the task
    of detecting pairs of specifics capable of ambiguous references,
    should only apply to pairs where *every* reference would have to
    be ambiguous -- and this can and is validated at every reference
    anyway.  Last, only XLF enforces these incomplete and needless
    distinguishability rules -- every other compiler seems to just
    check that each procedure reference resolves to exactly one
    specific procedure.
    
    If the standard were to complete lose subclause 15.4.3.4.5 and
    its related note (C.11.6) -- which admits that the rules are
    incomplete! -- and simply require that each generic procedure
    reference resolve unambiguously to exactly one specific, nobody
    would miss them.  This patch changes this compiler to give them
    lip service when requested, but they are now otherwise ignored.


  Commit: 0aff71c17831c4f3c7147e792b5761107c011dd5
      https://github.com/llvm/llvm-project/commit/0aff71c17831c4f3c7147e792b5761107c011dd5
  Author: yronglin <yronglin777 at gmail.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/Parse/Parser.h
    M clang/include/clang/Sema/Sema.h
    M clang/lib/Frontend/InitPreprocessor.cpp
    M clang/lib/Parse/ParseDecl.cpp
    M clang/lib/Parse/ParseStmt.cpp
    M clang/lib/Sema/SemaExpr.cpp
    M clang/lib/Sema/SemaExprCXX.cpp
    M clang/lib/Sema/SemaInit.cpp
    M clang/lib/Sema/SemaStmt.cpp
    M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
    M clang/lib/Sema/TreeTransform.h
    A clang/test/AST/ast-dump-for-range-lifetime.cpp
    M clang/test/CXX/special/class.temporary/p6.cpp
    M clang/test/Lexer/cxx-features.cpp
    M clang/www/cxx_status.html

  Log Message:
  -----------
  [Clang] Implement P2718R0 "Lifetime extension in range-based for loops" (#76361)

Implement P2718R0 "Lifetime extension in range-based for loops"
(https://wg21.link/P2718R0)

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

---------

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


  Commit: c322e92841fae1d756c4126a3e4c5e1b3366f042
      https://github.com/llvm/llvm-project/commit/c322e92841fae1d756c4126a3e4c5e1b3366f042
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

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

  Log Message:
  -----------
  [flang] Silence bogus USE statement error (#79896)

When there are multiple USE statement for a particular module using
renaming, it is necessary to collect a set of all of the original
renaming targets before processing any of USE statements that don't have
ONLY: clauses.

Currently, if there is a name in the module that can't be added to the
current scope -- due to a conflict with an internal or module
subprogram, or with a previously use-associated name -- the compiler
will emit a bogus error message even if that conflicting name appear on
a later USE statement of the same module as the target of a renaming.

The new regression test case added with this patch provides a motivating
example.


  Commit: 3c8a5800f5fdfd5c32eae04194fc31b9f5f86494
      https://github.com/llvm/llvm-project/commit/3c8a5800f5fdfd5c32eae04194fc31b9f5f86494
  Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M flang/lib/Lower/Allocatable.cpp
    M flang/lib/Lower/OpenACC.cpp
    M flang/test/Lower/OpenACC/acc-declare.f90

  Log Message:
  -----------
  [flang][openacc] Place post allocate/deallocate attribute correctly (#79883)

The `acc.declate_action` attribute was sometime misplaced as reported in
#79770.
This patch updates the lowering code to place the
postAllocate/postDeallocate actions at the correct place.


  Commit: 7855703194232a94d321dceea27b45cee0c91f73
      https://github.com/llvm/llvm-project/commit/7855703194232a94d321dceea27b45cee0c91f73
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    A llvm/test/CodeGen/RISCV/rvv/vp-splice-fixed-vectors.ll
    A llvm/test/CodeGen/RISCV/rvv/vp-splice-mask-fixed-vectors.ll
    A llvm/test/CodeGen/RISCV/rvv/vp-splice-mask-vectors.ll
    A llvm/test/CodeGen/RISCV/rvv/vp-splice.ll
    R llvm/test/CodeGen/RISCV/vp-splice-fixed-vectors.ll
    R llvm/test/CodeGen/RISCV/vp-splice-mask-fixed-vectors.ll
    R llvm/test/CodeGen/RISCV/vp-splice-mask-vectors.ll
    R llvm/test/CodeGen/RISCV/vp-splice.ll

  Log Message:
  -----------
  [RISCV] Move vp.splice tests into rvv directory. NFC


  Commit: 0461448313800b47189cc9024a0f2a9f75b44470
      https://github.com/llvm/llvm-project/commit/0461448313800b47189cc9024a0f2a9f75b44470
  Author: Jivan Hakobyan <jivanhakobyan9 at gmail.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M llvm/include/llvm/IR/IntrinsicsRISCV.td
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.h
    M llvm/lib/Target/RISCV/RISCVInstrInfoZimop.td
    A llvm/test/CodeGen/RISCV/rv32zimop-intrinsic.ll
    A llvm/test/CodeGen/RISCV/rv64zimop-intrinsic.ll

  Log Message:
  -----------
  [RISCV][ISel] Add ISel support for experimental Zimop extension (#77089)

This implements ISel support for mopr[0-31] and moprr[0-7] instructions
for 32 and 64 bits

---------

Co-authored-by: ln8-8 <lyut.nersisyan at gmail.com>


  Commit: 0a2b5b03c4084ac1fefd0e62db2ba49f5ac24ab9
      https://github.com/llvm/llvm-project/commit/0a2b5b03c4084ac1fefd0e62db2ba49f5ac24ab9
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M clang/include/clang/Basic/BuiltinsNVPTX.def

  Log Message:
  -----------
  [NVPTX][Fix] Ensure the return value of 'activemask' is unsigned

Summary:
The previous patch missed the `U` prefix, which caused the mask to be
considered signed. This meant that conversions would incorrectly treat a
full mask as a negative number and break things.


  Commit: 51379a982efc64eb319ba6f4c1af4dce31af499a
      https://github.com/llvm/llvm-project/commit/51379a982efc64eb319ba6f4c1af4dce31af499a
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M clang/lib/Headers/__clang_cuda_intrinsics.h

  Log Message:
  -----------
  [CUDA] Change '__activemask' to use '__nvvm_activemask()' (#79892)

Summary:
We recently added builitin support for this function.


  Commit: 7bc5eaa02f6d74410f3131b7d2ab21ee8209430f
      https://github.com/llvm/llvm-project/commit/7bc5eaa02f6d74410f3131b7d2ab21ee8209430f
  Author: Nick Desaulniers <nickdesaulniers at users.noreply.github.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M libc/config/linux/x86_64/entrypoints.txt
    M libc/config/linux/x86_64/headers.txt
    M libc/include/CMakeLists.txt
    M libc/include/llvm-libc-macros/CMakeLists.txt
    A libc/include/llvm-libc-macros/stdbit-macros.h
    A libc/include/stdbit.h.def
    M libc/spec/spec.td
    M libc/spec/stdc.td
    M libc/src/CMakeLists.txt
    A libc/src/stdbit/CMakeLists.txt
    A libc/src/stdbit/stdc_leading_zeros_uc.cpp
    A libc/src/stdbit/stdc_leading_zeros_uc.h
    A libc/src/stdbit/stdc_leading_zeros_ui.cpp
    A libc/src/stdbit/stdc_leading_zeros_ui.h
    A libc/src/stdbit/stdc_leading_zeros_ul.cpp
    A libc/src/stdbit/stdc_leading_zeros_ul.h
    A libc/src/stdbit/stdc_leading_zeros_ull.cpp
    A libc/src/stdbit/stdc_leading_zeros_ull.h
    A libc/src/stdbit/stdc_leading_zeros_us.cpp
    A libc/src/stdbit/stdc_leading_zeros_us.h
    M libc/test/include/CMakeLists.txt
    A libc/test/include/stdbit_test.cpp
    M libc/test/src/CMakeLists.txt
    A libc/test/src/stdbit/CMakeLists.txt
    A libc/test/src/stdbit/stdc_leading_zeros_uc_test.cpp
    A libc/test/src/stdbit/stdc_leading_zeros_ui_test.cpp
    A libc/test/src/stdbit/stdc_leading_zeros_ul_test.cpp
    A libc/test/src/stdbit/stdc_leading_zeros_ull_test.cpp
    A libc/test/src/stdbit/stdc_leading_zeros_us_test.cpp

  Log Message:
  -----------
  [libc] implement stdc_leading_zeros_u* for stdbit.h (#79669)


- stdbit.stdc_leading_zeros_uc
- stdbit.stdc_leading_zeros_us
- stdbit.stdc_leading_zeros_ui
- stdbit.stdc_leading_zeros_ul
- stdbit.stdc_leading_zeros_ull

Test via:
$ ninja libc-stdbit-tests libc_include_tests


  Commit: ff77058141e8026357ca514ad0d45c6c50921290
      https://github.com/llvm/llvm-project/commit/ff77058141e8026357ca514ad0d45c6c50921290
  Author: Justin Fargnoli <34139864+justinfargnoli at users.noreply.github.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M llvm/lib/Target/NVPTX/NVPTXInstrInfo.td
    M llvm/test/CodeGen/NVPTX/i8x4-instructions.ll

  Log Message:
  -----------
  Disable incorrect peephole optimizations


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

  Changed paths:
    M libc/src/__support/GPU/nvptx/utils.h
    M libc/src/__support/RPC/rpc_util.h
    M libc/src/time/gpu/nanosleep.cpp

  Log Message:
  -----------
  [libc][NFC] Remove inline assembly for PTX instructions (#79913)

Summary:
Recent patches have implemented builitin versions of these functions.
This patch simply removes uses of inline assembly to hopefully improve
optimizations in this area.


  Commit: 577738a12d3cfd3210dceb4eb0b26fb2b2a961ee
      https://github.com/llvm/llvm-project/commit/577738a12d3cfd3210dceb4eb0b26fb2b2a961ee
  Author: Justin Fargnoli <34139864+justinfargnoli at users.noreply.github.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M llvm/lib/Target/NVPTX/NVPTXInstrInfo.td
    M llvm/test/CodeGen/NVPTX/i8x4-instructions.ll

  Log Message:
  -----------
  Revert "Disable incorrect peephole optimizations" (#79916)

This reverts commit ff77058141e8026357ca514ad0d45c6c50921290.


  Commit: 5a7a8f73c71b9aaf6d2f7cb548807046f19c4498
      https://github.com/llvm/llvm-project/commit/5a7a8f73c71b9aaf6d2f7cb548807046f19c4498
  Author: Nick Desaulniers <nickdesaulniers at users.noreply.github.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M libc/include/llvm-libc-macros/stdbit-macros.h
    M libc/include/stdbit.h.def
    M libc/test/include/CMakeLists.txt

  Log Message:
  -----------
  [libc] fix type generic stdc_leading_zeros for GCC (#79917)

GCC does not support _Generic in C++ mode. Use inline function definitions with
function overloading in __cplusplus mode.


  Commit: 6b330470df7db34ee1b894e0e2edf8270d5c51da
      https://github.com/llvm/llvm-project/commit/6b330470df7db34ee1b894e0e2edf8270d5c51da
  Author: Nick Desaulniers <nickdesaulniers at users.noreply.github.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M libc/config/linux/aarch64/entrypoints.txt
    M libc/config/linux/aarch64/headers.txt
    M libc/config/linux/arm/entrypoints.txt
    M libc/config/linux/arm/headers.txt
    M libc/config/linux/riscv/entrypoints.txt
    M libc/config/linux/riscv/headers.txt

  Log Message:
  -----------
  [libc] add more arch entrypoints for stdc_leading_zeros (#79923)


Otherwise the include test fails on these targets.


  Commit: aa1968c2ebdd05aa3ba876062acd966a3e251ebe
      https://github.com/llvm/llvm-project/commit/aa1968c2ebdd05aa3ba876062acd966a3e251ebe
  Author: Maksim Panchenko <maks at fb.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M bolt/include/bolt/Rewrite/MetadataManager.h
    M bolt/include/bolt/Rewrite/MetadataRewriter.h
    M bolt/include/bolt/Rewrite/RewriteInstance.h
    M bolt/lib/Rewrite/LinuxKernelRewriter.cpp
    M bolt/lib/Rewrite/MetadataManager.cpp
    M bolt/lib/Rewrite/RewriteInstance.cpp

  Log Message:
  -----------
  [BOLT] Add metadata pre-emit finalization interface (#79925)

Some metadata needs to be updated/finalized before the binary context is
emitted into the binary. Add the interface and use it for Linux ORC
update invocation.


  Commit: 3d1157000db56a340e1dae90b587bd144ffeaa6c
      https://github.com/llvm/llvm-project/commit/3d1157000db56a340e1dae90b587bd144ffeaa6c
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M flang/include/flang/Evaluate/characteristics.h
    M flang/lib/Evaluate/characteristics.cpp
    M flang/lib/Semantics/check-declarations.cpp
    M flang/test/Semantics/generic05.F90
    M flang/test/Semantics/generic07.f90
    M flang/test/Semantics/resolve17.f90
    M flang/test/Semantics/resolve53.f90
    M flang/test/Semantics/resolve54.f90
    M flang/test/Semantics/resolve65.f90
    M flang/test/Semantics/resolve96.f90

  Log Message:
  -----------
  [flang] Restore error status for many indistinguishable specifics (#79927)

A recent patch to allow pFUnit to compile softened the diagnostic about
indistinguishable specific procedures to a portability warning. It turns
out that this was overkill -- for specific procedures containing no
optional or unlimited polymorphic dummy data arguments, a diagnosis of
"indistinguishable" can still be a hard error.

So adjust the analysis to be tri-state: two procedures are either
definitely distinguishable, definitely indistinguishable without
optionals or unlimited polymorphics, or indeterminate. Emit errors as
before for the definitely indistinguishable cases; continue to emit
portability warnings for the indeterminate cases.

When this patch is merged, all but one of the dozen or so tests that I
disabled in llvm-test-suite can be re-enabled.


  Commit: 59c9a48d5e19716e5df8d0f794e489891fd2c835
      https://github.com/llvm/llvm-project/commit/59c9a48d5e19716e5df8d0f794e489891fd2c835
  Author: kusmour <kusmour at gmail.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M llvm/lib/DebugInfo/GSYM/GsymCreator.cpp
    A llvm/test/tools/llvm-gsymutil/X86/elf-empty-dir.yaml

  Log Message:
  -----------
  [llvm-gsymutil] Fix assert failure on FileEntry.Dir empty (#79926)

Summary:
FileEntry.Dir can be empty if debug info only contains relative path.
This caused an assertion failure when gsym segmentation is trying to
copy a file entry with empty dir. As the fitst entry of StringTable is
always empty (and is preserved), `StringOffsetMap` doesn't have key 0.
Hence, `find(0)` returns `End` and `operator->()` fails the assertion

Test Plan:
./bin/llvm-lit -sv llvm/test/tools/llvm-gsymutil/X86/elf-empty-dir.yaml


  Commit: a694104022cff5e8b38321f99fd0bc34d8847f5d
      https://github.com/llvm/llvm-project/commit/a694104022cff5e8b38321f99fd0bc34d8847f5d
  Author: Diego Caballero <diegocaballero at google.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M mlir/lib/Dialect/Vector/Transforms/VectorEmulateNarrowType.cpp
    M mlir/test/Dialect/Vector/vector-rewrite-narrow-types.mlir

  Log Message:
  -----------
  [mlir][Vector] Add patterns for efficient i4 -> i8 conversion emulation (#79494)

This PR adds new patterns to improve the generated vector code for the emulation of any conversion that have to go through an i4 -> i8 type extension (only signed extensions are supported for now). This will impact any i4 -> i8/i16/i32/i64 signed extensions as well as sitofp i4 -> f8/f16/f32/f64.

The asm code generated for the supported cases is significantly better after this PR for both x86 and aarch64.


  Commit: 0fc791cd2c4e249a9304ac0f36e35a2a3edbd66d
      https://github.com/llvm/llvm-project/commit/0fc791cd2c4e249a9304ac0f36e35a2a3edbd66d
  Author: Maksim Panchenko <maks at fb.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M bolt/lib/Rewrite/LinuxKernelRewriter.cpp
    A bolt/test/X86/linux-orc.s
    R bolt/test/X86/orc_unwind.s

  Log Message:
  -----------
  [BOLT] Fix comparison function for Linux ORC entries (#79921)

Fix ORC entry comparison function to cover a case with multiple
terminator entries matching at the same IP.


  Commit: 8ca90b29eed7836e122382a603bc0a06ca82ebc8
      https://github.com/llvm/llvm-project/commit/8ca90b29eed7836e122382a603bc0a06ca82ebc8
  Author: Jie Fu <jiefu at tencent.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M mlir/lib/Dialect/Vector/Transforms/VectorEmulateNarrowType.cpp

  Log Message:
  -----------
  [mlir] Remove unused variable 'byteBitwidth' in VectorEmulateNarrowType.cpp (NFC)

llvm-project/mlir/lib/Dialect/Vector/Transforms/VectorEmulateNarrowType.cpp:763:12:
error: unused variable 'byteBitwidth' [-Werror,-Wunused-variable]
  unsigned byteBitwidth = 8;
           ^
1 error generated.


  Commit: 45188c64db68af92596acdb2d9022527f6aa4502
      https://github.com/llvm/llvm-project/commit/45188c64db68af92596acdb2d9022527f6aa4502
  Author: Liao Chunyu <chunyu at iscas.ac.cn>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

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

  Log Message:
  -----------
  [DAGCombiner] Use generalized pattern matcher in foldBoolSelectToLogic (#79101)

support vp.select
    
 TODO: Possibly other functions could be supported, eg: SimplifySelect()


  Commit: 4460fa8814d4c86e1d22f830078d7bad69bc0ecc
      https://github.com/llvm/llvm-project/commit/4460fa8814d4c86e1d22f830078d7bad69bc0ecc
  Author: Cyndy Ishida <cyndy_ishida at apple.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M llvm/include/llvm/TextAPI/InterfaceFile.h
    M llvm/include/llvm/TextAPI/Record.h
    M llvm/include/llvm/TextAPI/RecordsSlice.h
    M llvm/include/llvm/TextAPI/Symbol.h
    M llvm/include/llvm/TextAPI/SymbolSet.h
    M llvm/lib/TextAPI/RecordVisitor.cpp
    M llvm/lib/TextAPI/RecordsSlice.cpp
    M llvm/lib/TextAPI/Symbol.cpp
    M llvm/lib/TextAPI/SymbolSet.cpp
    A llvm/test/tools/llvm-readtapi/stubify-ehtypes.test
    M llvm/unittests/TextAPI/RecordTests.cpp
    M llvm/unittests/TextAPI/TextStubV5Tests.cpp

  Log Message:
  -----------
  [TextAPI] Introduce granularity for handling ObjC Interface symbols (#79928)

ObjCInterfaceRecords roughly align to the objc-classes key in tbd-files.
They condensely represent up to 3 symbols. The problem here is that when
represented this way, we lose granularity when these symbols could have
different linkages or outright don't exist. This can happen frequently
in interoptable code generated by the swift compiler. This adds fields
and utility functions to express unique properties for these symbols. If
the record does represent the same properties across all of its symbols,
it will be treated the same in the TBD. Otherwise it will be printed in
global's section.

Reviewed seperately before by Juergen Ributzka


  Commit: 3bf9e63e705f580917e89259e71469a81679bab5
      https://github.com/llvm/llvm-project/commit/3bf9e63e705f580917e89259e71469a81679bab5
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M llvm/tools/lli/lli.cpp

  Log Message:
  -----------
  [lli] Use StringRef::consume_front (NFC)


  Commit: a112df28edc449e3e47101ffa7d4b6f0bc040c63
      https://github.com/llvm/llvm-project/commit/a112df28edc449e3e47101ffa7d4b6f0bc040c63
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M clang/tools/diagtool/TreeView.cpp

  Log Message:
  -----------
  [diagtool] Use StringRef::consume_front (NFC)


  Commit: 695b868989d08e8352e0cf063f44d237792481df
      https://github.com/llvm/llvm-project/commit/695b868989d08e8352e0cf063f44d237792481df
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

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

  Log Message:
  -----------
  [AMDGPU] Use a range-based for loop (NFC)


  Commit: 053c0ad49985ce3fe117df72617dd5a77d9e389f
      https://github.com/llvm/llvm-project/commit/053c0ad49985ce3fe117df72617dd5a77d9e389f
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

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

  Log Message:
  -----------
  [Mips] Use a range-based for loop (NFC)


  Commit: 8582d41789ef8524e72e9c5d5eab305455c8d6bc
      https://github.com/llvm/llvm-project/commit/8582d41789ef8524e72e9c5d5eab305455c8d6bc
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

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

  Log Message:
  -----------
  [Target] Use SDValue::getConstantOperandVal (NFC)


  Commit: 65f486c45d56290655b77711a87f7e4b341b8b6c
      https://github.com/llvm/llvm-project/commit/65f486c45d56290655b77711a87f7e4b341b8b6c
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

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

  Log Message:
  -----------
  AMDGPU: Simplify else if to just else in AMDGPUInstCombineIntrinsic

Fixes #79738


  Commit: 9bbde62b521cbe7761f3649fd7b7384a53efc88f
      https://github.com/llvm/llvm-project/commit/9bbde62b521cbe7761f3649fd7b7384a53efc88f
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCCodeEmitter.cpp

  Log Message:
  -----------
  AMDGPU: Simplify else if to else in AMDGPUMCCodeEmitter

Fixes #79737


  Commit: 659ce8f66597ba19845e407d06156ff33c8c7fb1
      https://github.com/llvm/llvm-project/commit/659ce8f66597ba19845e407d06156ff33c8c7fb1
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

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

  Log Message:
  -----------
  AMDGPU: Simplify else if to else in GCNHazardRecognizer

Fixes #79736


  Commit: 7f6d4455231d458a6925ca5c957bb2814c196ea2
      https://github.com/llvm/llvm-project/commit/7f6d4455231d458a6925ca5c957bb2814c196ea2
  Author: Jakub Kuderski <jakub at nod-labs.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M mlir/lib/Conversion/MemRefToSPIRV/MapMemRefStorageClassPass.cpp

  Log Message:
  -----------
  [mlir][spirv] Clean up map-memref-storage-class pass (#79937)

Clean up the code before making more substantial changes. NFC modulo
extra error checking and physical storage buffer storage class handling.

* Add switch case for physical storage buffer
* Handle type conversion failures
* Inline methods to reduce scrolling
* Other minor cleanups


  Commit: 198652a0ff2553c4ba906be10c22af57d20d0bd3
      https://github.com/llvm/llvm-project/commit/198652a0ff2553c4ba906be10c22af57d20d0bd3
  Author: Arthur Eubanks <aeubanks at google.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

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

  Log Message:
  -----------
  [X86] Treat __start_*/__stop_* symbols as large (#79909)

Followup to #79884.

The linker adds __start_foo/__stop_foo symbols pointing to the
beginning/end of the foo section. These can be far away from text, so
treat them as large symbols under the medium/large code models.
Performance to access these is almost certainly not important.


  Commit: 70eb0e37a86747f9266e4c8380baa89746f5e23b
      https://github.com/llvm/llvm-project/commit/70eb0e37a86747f9266e4c8380baa89746f5e23b
  Author: Rob Suderman <rob.suderman at gmail.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

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

  Log Message:
  -----------
  [mlir][tensor] Fix `tensor.pad` to remove newly static values (#79938)

The canonicalization incrementally converts foldable dynamic hi/lo
padding to static hi/lo values. During this canonicalization the
static-fied valued should be removed from the dynamic values.


  Commit: dc4483659fc51890fdc732acc66a4dcda6e68047
      https://github.com/llvm/llvm-project/commit/dc4483659fc51890fdc732acc66a4dcda6e68047
  Author: Po-yao Chang <poyaoc97 at gmail.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M libcxx/modules/std/atomic.inc
    M libcxx/modules/std/iosfwd.inc
    M libcxx/modules/std/string.inc
    M libcxx/modules/std/string_view.inc

  Log Message:
  -----------
  [libc++][modules] Support using the module std with -fno-char8_t. (#79155)

Exclude some using-declarations in the module purview when compiling
with `-fno-char8_t`.


  Commit: a12390e6202eaf1e5d7810109756e10079b9144b
      https://github.com/llvm/llvm-project/commit/a12390e6202eaf1e5d7810109756e10079b9144b
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

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

  Log Message:
  -----------
  [RISCV] Don't use pointer operand in MemoryLocation for RISC-V strided and indexed load/store intrinsics. (#79890)

It seems that even though we set the size to unknown, there is still an
assumption in alias analysis somewhere that we will only access bytes
*after* the pointer. Since a strided/indexed load/store can have
negative indices, this is not accurate.

This was found in our downstream when the scheduler reordered a strided
load with negative stride above a scalar store that aliased with it.


  Commit: 5910e34a2f9a531e0fb6bb4ec1d2888f4a0c0897
      https://github.com/llvm/llvm-project/commit/5910e34a2f9a531e0fb6bb4ec1d2888f4a0c0897
  Author: XinWang10 <108658776+XinWang10 at users.noreply.github.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M llvm/lib/Target/X86/MCTargetDesc/X86EncodingOptimization.cpp
    M llvm/lib/Target/X86/MCTargetDesc/X86EncodingOptimizationForImmediate.def
    M llvm/test/CodeGen/X86/apx/adc.ll
    M llvm/test/CodeGen/X86/apx/add.ll
    M llvm/test/CodeGen/X86/apx/and.ll
    M llvm/test/CodeGen/X86/apx/or.ll
    M llvm/test/CodeGen/X86/apx/rol.ll
    M llvm/test/CodeGen/X86/apx/sar.ll
    M llvm/test/CodeGen/X86/apx/sbb.ll
    M llvm/test/CodeGen/X86/apx/shift-eflags.ll
    M llvm/test/CodeGen/X86/apx/shr.ll
    M llvm/test/CodeGen/X86/apx/sub.ll
    M llvm/test/CodeGen/X86/apx/xor.ll
    A llvm/test/MC/X86/apx/adc-reloc.s
    A llvm/test/MC/X86/apx/add-reloc.s
    A llvm/test/MC/X86/apx/and-reloc.s
    A llvm/test/MC/X86/apx/imul-reloc.s
    A llvm/test/MC/X86/apx/or-reloc.s
    A llvm/test/MC/X86/apx/rcl-encopt.s
    A llvm/test/MC/X86/apx/rcr-encopt.s
    A llvm/test/MC/X86/apx/rol-encopt.s
    A llvm/test/MC/X86/apx/ror-encopt.s
    A llvm/test/MC/X86/apx/sar-encopt.s
    A llvm/test/MC/X86/apx/sbb-reloc.s
    A llvm/test/MC/X86/apx/shl-encopt.s
    A llvm/test/MC/X86/apx/shr-encopt.s
    A llvm/test/MC/X86/apx/sub-reloc.s
    A llvm/test/MC/X86/apx/xor-reloc.s

  Log Message:
  -----------
  [X86][MC] Support  encoding optimization & assembler relaxation about immediate operands for APX instructions (#78545)

Encoding optimization:
```
mi/mi32 -> mi8
ri/ri32 -> ri8
```
if the immediate operand is 8-bit wide.

Assembler relaxation:
```
mi8 -> mi/mi32
ri8 -> ri/ri32
```
If the immediate operand is a symbol expression and it's value is
unknown.


  Commit: d09082f6fd517759e5c0874a2e73bddd550de299
      https://github.com/llvm/llvm-project/commit/d09082f6fd517759e5c0874a2e73bddd550de299
  Author: Piyou Chen <piyou.chen at sifive.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M clang/test/Driver/riscv-arch.c
    M llvm/lib/Support/RISCVISAInfo.cpp
    M llvm/unittests/Support/RISCVISAInfoTest.cpp

  Log Message:
  -----------
  [RISCV] Relax march string order constraint (#78120)

Follow
https://github.com/riscv-non-isa/riscv-toolchain-conventions/pull/14 by
dropping the order requirement of `-march`.

1. single-letter extension can be arbitrary order
    - march=rv32iamdf 
2. single-letter extension and multi-letter extension can be mixed
    - march=rv32i_zihintntl_m_a_f_d_svinval
3. multi-letter extension need seperate the following extension by
underscore, otherwise it will be intreprete as one extension.
    - march=rv32i_zbam -> i,zbam
    - march=rv32i_zba_m -> i,zba,m


  Commit: 67f0a6917c07df6a21580adb567b1a8964818d92
      https://github.com/llvm/llvm-project/commit/67f0a6917c07df6a21580adb567b1a8964818d92
  Author: ampandey-1995 <137622562+ampandey-1995 at users.noreply.github.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
    A llvm/test/Instrumentation/AddressSanitizer/AMDGPU/asan_instrument_mem_intrinsics.ll

  Log Message:
  -----------
  [ASan][AMDGPU] Fix Assertion Failure. (#79795)

Assertion failure `(i >= FTy->getNumParams() || FTy->getParamType(i) ==
Args[i]->getType()) && "Calling a function with a bad signature!"'. The
'llvm.memcpy' intercepted by ASan instrumentation pass is implemented by
it's own __asan_memcpy implementation. The second argument of
llvm.memcpy accepts ptr to addrspace(4), __asan_memcpy also has to
follow ptr to addrspace(4) convention.

---------

Co-authored-by: Amit Pandey <amit.pandey at amd.com>


  Commit: cb46c6181770dabad59cc738ad1d26ad78b5f885
      https://github.com/llvm/llvm-project/commit/cb46c6181770dabad59cc738ad1d26ad78b5f885
  Author: Kyungwoo Lee <kyulee at meta.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M lld/MachO/Driver.cpp
    M lld/MachO/SyntheticSections.cpp
    M lld/MachO/SyntheticSections.h
    M lld/MachO/Writer.cpp
    A lld/test/MachO/arm64-objc-stubs-dead.s

  Log Message:
  -----------
  [lld-macho] dead-strip objc stubs (#79726)

This supports dead-strip for objc stubs.


  Commit: 2800448f88cbc83f688f7848d6ebce247962bd19
      https://github.com/llvm/llvm-project/commit/2800448f88cbc83f688f7848d6ebce247962bd19
  Author: Shih-Po Hung <shihpo.hung at sifive.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

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

  Log Message:
  -----------
  [RISCV] Refine cost on Min/Max reduction (#79402)

This patch is split off from #77342, and follows #79103

- Correct for CodeSize cost that 1 instruction is not included. 3 is
from {VMV.S, ReductionOp, VMV.X}
- Add SplitCost which chains a series of VMAX/VMIN/... which scales with
LMUL.
- Use MVT to estimate VL.


  Commit: 1a219e989f07eef06fbc9f75ad0c07ebdc652334
      https://github.com/llvm/llvm-project/commit/1a219e989f07eef06fbc9f75ad0c07ebdc652334
  Author: XinWang10 <108658776+XinWang10 at users.noreply.github.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86CompressEVEX.cpp
    M llvm/test/CodeGen/X86/apx/compress-evex.mir
    M llvm/utils/TableGen/X86ManualCompressEVEXTables.def

  Log Message:
  -----------
  [X86] Support EVEX compression from MOVBErr to BSWAP (#79775)

APX promoted MOVBE instructions were supported in #77431. The reg2reg
variants of MOVBE are newly introduced by APX and can be optimized to
BSWAP instruction when the 2 register operands are same.

This patch adds manual entries for MOVBErr instructions when we do ndd
to non-ndd compression #77731.
RFC:
https://discourse.llvm.org/t/rfc-design-for-apx-feature-egpr-and-ndd-support/73031/4


  Commit: 597f56f309815bcda9f38dd6040d7c7e0e520547
      https://github.com/llvm/llvm-project/commit/597f56f309815bcda9f38dd6040d7c7e0e520547
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

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

  Log Message:
  -----------
  [clang][AST][NFC] Take const CXXRecordDecl* in ComparisonCategories

The class member is already const.


  Commit: 547113fd1f52e2a3d08e3b71ddcd47505ca4a21a
      https://github.com/llvm/llvm-project/commit/547113fd1f52e2a3d08e3b71ddcd47505ca4a21a
  Author: Markus Böck <markus.boeck02 at gmail.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M mlir/include/mlir/IR/EnumAttr.td
    M mlir/lib/Dialect/Arith/IR/ArithCanonicalization.td
    M mlir/lib/Dialect/Arith/IR/ArithOps.cpp
    M mlir/test/IR/enum-attr-roundtrip.mlir
    M mlir/test/lib/Dialect/Test/TestOps.td

  Log Message:
  -----------
  [mlir][ODS] Add `ConstantEnumCase` (#78992)

Specifying an enum case of an enum attr currently requires the use of
either `NativeCodeCall` or a `ConstantAttr` specifying the full C++ name
of the enum case. The disadvantages of both are less readable code due
to including C++ expressions and very few checks of any kind, creating
C++ code that does not compile instead.

This PR adds `ConstantEnumCase`, a kind of `ConstantAttr` which
automatically derives the correct value representation from a given enum
and the string representation of an enum case. It supports both
`EnumAttrInfo`s (enums wrapping `IntegerAttr`) and `EnumAttr` (proper
dialect attributes). It even supports bit-enums, allowing one to list
multiple enum cases and have them be combined. If an enum case is not
found, an assertion is triggered with a proper error message.

Besides the tests, it was also used to simplify DRR patterns in the
arith dialect.


  Commit: fd3edd452339b507345ccad991f45110e08cd815
      https://github.com/llvm/llvm-project/commit/fd3edd452339b507345ccad991f45110e08cd815
  Author: Guillaume Chatelet <gchatelet at google.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M libc/src/__support/FPUtil/FPBits.h
    M libc/test/src/__support/FPUtil/fpbits_test.cpp

  Log Message:
  -----------
  [libc] Add test to check all properties for all FPBit types. (#79851)

This test is platform agnostic, it runs all tests on all architectures.


  Commit: 7a51aeadb933301a38bf2e81e25618bcf173fa8e
      https://github.com/llvm/llvm-project/commit/7a51aeadb933301a38bf2e81e25618bcf173fa8e
  Author: Jie Fu <jiefu at tencent.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

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

  Log Message:
  -----------
  [X86] Silence -Wlogical-op-parentheses in X86CompressEVEX.cpp (NFC)

llvm-project/llvm/lib/Target/X86/X86CompressEVEX.cpp:233:15:
error: '&&' within '||' [-Werror,-Wlogical-op-parentheses]
    if (!IsND && !IsMovberr || !isRedundantNewDataDest(MI, ST))
        ~~~~~~^~~~~~~~~~~~~ ~~
llvm-project/llvm/lib/Target/X86/X86CompressEVEX.cpp:233:15:
note: place parentheses around the '&&' expression to silence this warning
    if (!IsND && !IsMovberr || !isRedundantNewDataDest(MI, ST))
              ^
        (                  )
1 error generated.


  Commit: 3df262f89d22e37d12775137cd0f014b4848a4e1
      https://github.com/llvm/llvm-project/commit/3df262f89d22e37d12775137cd0f014b4848a4e1
  Author: David Spickett <david.spickett at linaro.org>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M llvm/docs/GitHub.rst
    M llvm/docs/MyFirstTypoFix.rst

  Log Message:
  -----------
  [llvm][Docs] Expand MyFirstTypoFix's post-commit section (#79827)

And link to it from the GitHub guide. Since it fits in the flow of the
former document better, but is of interest to those using the GitHub
specific guide.

This includes some content I wrote for an automated PR comment but I
think is useful to have in a single place to link to instead.

I have removed some details:
* About the waterfall view because it doesn't seem that useful to new
contributors and is likely to just seem like constant chaos given how
many builds are going on.
* The orange bubbles in the console view. I also remember this being the
case but whether it was changed, or the web UI is just not loading
properly, I now see red builds that were red before that commit. So
again, it seems like detail that's not needed for a new contributor.


  Commit: 58779495d3613386398fc70faeb098674d7757b5
      https://github.com/llvm/llvm-project/commit/58779495d3613386398fc70faeb098674d7757b5
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

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

  Log Message:
  -----------
  [clang][AST][NFC] Make FieldDecl in SubobjectAdjustment const


  Commit: 4c2422e56ef17ca113be160cf85672c4736bc11e
      https://github.com/llvm/llvm-project/commit/4c2422e56ef17ca113be160cf85672c4736bc11e
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M llvm/test/Analysis/StackSafetyAnalysis/local.ll

  Log Message:
  -----------
  [StackSafetyAnalysis] Add test with non-pointer use (NFC)


  Commit: e9e1a72c22181993edf5bd0b660538081c2cdfb5
      https://github.com/llvm/llvm-project/commit/e9e1a72c22181993edf5bd0b660538081c2cdfb5
  Author: Gábor Spaits <48805437+spaits at users.noreply.github.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M clang/test/SemaTemplate/deduction.cpp

  Log Message:
  -----------
  [Sema] Restructure and extend the testing of template pack deduction (#79881)

Add tests for empty pack deduction from function arguments.


  Commit: f214933bc538c719403804069941de301487c39b
      https://github.com/llvm/llvm-project/commit/f214933bc538c719403804069941de301487c39b
  Author: Alexandros Lamprineas <alexandros.lamprineas at arm.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M clang/test/CodeGen/attr-target-version.c
    M llvm/include/llvm/TargetParser/AArch64TargetParser.h

  Log Message:
  -----------
  [FMV] Change feature priorities according to ACLE. (#79316)

This patch follows the latest ACLE specification as shown in PR
https://github.com/ARM-software/acle/pull/279. It adjusts the
priorities for FEAT_DOTPROD, FEAT_SM4, FEAT_FP16FML, FEAT_RDM.


  Commit: 2fb3c9b90394013d4a3222619cd1d6173c104741
      https://github.com/llvm/llvm-project/commit/2fb3c9b90394013d4a3222619cd1d6173c104741
  Author: Pierre van Houtryve <pierre.vanhoutryve at amd.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M llvm/lib/Analysis/StackSafetyAnalysis.cpp
    A llvm/test/Analysis/StackSafetyAnalysis/extend-ptr.ll

  Log Message:
  -----------
  [StackSafetyAnalysis] Don't call getTruncateOrZeroExtend for pointers of different sizes (#79804)

Otherwise SCEV asserts `Can't extend pointer!`

Fixes SWDEV-442670


  Commit: c61686e8abc2aee6e2e0ad09c6d1ade534e497b3
      https://github.com/llvm/llvm-project/commit/c61686e8abc2aee6e2e0ad09c6d1ade534e497b3
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M clang/lib/Analysis/CFG.cpp
    M clang/lib/CodeGen/CGExprConstant.cpp
    M clang/lib/Sema/JumpDiagnostics.cpp

  Log Message:
  -----------
  [clang][NFC] Use no-param version of skipRValueSubobjectAdjustments

when possible.


  Commit: 5a00cb1abfedbcc0fb60a9b11b4a9876160e3a92
      https://github.com/llvm/llvm-project/commit/5a00cb1abfedbcc0fb60a9b11b4a9876160e3a92
  Author: Mehdi Amini <joker.eph at gmail.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M clang/test/Driver/riscv-arch.c
    M llvm/lib/Support/RISCVISAInfo.cpp
    M llvm/unittests/Support/RISCVISAInfoTest.cpp

  Log Message:
  -----------
  Revert "[RISCV] Relax march string order constraint" (#79976)

Reverts llvm/llvm-project#78120

Buildbot is broken:

llvm/lib/Support/RISCVISAInfo.cpp:910:18: error: call to deleted
constructor of 'llvm::Error'
          return E;
                 ^


  Commit: e5054fb5c660cb81d1f96498e39662914a92a167
      https://github.com/llvm/llvm-project/commit/e5054fb5c660cb81d1f96498e39662914a92a167
  Author: Shengchen Kan <shengchen.kan at intel.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M llvm/test/CodeGen/X86/popcnt.ll

  Log Message:
  -----------
  [X86][test] Update CodeGen/X86/popcnt.ll after #78545


  Commit: f7ef73ea889a43b893f6277a2ecc227fd2bf803a
      https://github.com/llvm/llvm-project/commit/f7ef73ea889a43b893f6277a2ecc227fd2bf803a
  Author: Yi Wu <43659785+yi-wu-arm at users.noreply.github.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/Arith/IR/ArithOps.td
    M mlir/lib/Conversion/ArithToLLVM/ArithToLLVM.cpp
    M mlir/lib/Conversion/ArithToSPIRV/ArithToSPIRV.cpp
    M mlir/test/Conversion/ArithToLLVM/arith-to-llvm.mlir
    M mlir/test/Conversion/ArithToSPIRV/arith-to-spirv.mlir
    M mlir/test/Dialect/Arith/ops.mlir

  Log Message:
  -----------
  [mlir] [arith] add shl overflow flag in Arith and lower to SPIR-V and LLVMIR (#79828)

There is no `SHL` used in canonicalization in `arith`

---------

Co-authored-by: Jakub Kuderski <kubakuderski at gmail.com>
Co-authored-by: Tobias Gysi <tobias.gysi at nextsilicon.com>


  Commit: 0e17684cf5ce3b99e8f732f53c3534990ad91fd5
      https://github.com/llvm/llvm-project/commit/0e17684cf5ce3b99e8f732f53c3534990ad91fd5
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M llvm/include/llvm/CodeGen/TargetRegisterInfo.h
    M llvm/include/llvm/MC/MCRegisterInfo.h
    M llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
    M llvm/unittests/CodeGen/MachineInstrTest.cpp
    M llvm/utils/TableGen/RegisterInfoEmitter.cpp

  Log Message:
  -----------
  [AMDGPU] Speed up SIRegisterInfo::getReservedRegs (#79844)

reserveRegisterTuples is slow because it uses MCRegAliasIterator and
hence ends up reserving the same aliased registers many times. This
patch changes getReservedRegs not to use it for reserving SGPRs, VGPRs
and AGPRs. Instead it iterates through base register classes, which
should come closer to reserving each register once only.

Overall this speeds up the time to run check-llvm-codegen-amdgpu in my
Release build from 18.4 seconds to 16.9 seconds (all timings +/- 0.2).


  Commit: 04d20b17050203e07394b4f9ee61b5affe2d5347
      https://github.com/llvm/llvm-project/commit/04d20b17050203e07394b4f9ee61b5affe2d5347
  Author: Younan Zhang <zyn7109 at gmail.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/Sema/SemaConcept.cpp
    M clang/test/SemaTemplate/concepts-out-of-line-def.cpp

  Log Message:
  -----------
  [concepts] Set up an instantiation scope for constraint expression comparison (#79698)

This is a follow-up for the comparison of constraints on out-of-line
function template definitions. We require the instantiation of a
ParmVarDecl while transforming the expression if that Decl gets
referenced by a DeclRefExpr. However, we're not actually performing the
class or function template instantiation at the time of such comparison.
Therefore, let's map these parameters to themselves so that they get
preserved after the substitution.

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


  Commit: 70ae1098ba1a695478a2d62a9fe7c35b43c90ffa
      https://github.com/llvm/llvm-project/commit/70ae1098ba1a695478a2d62a9fe7c35b43c90ffa
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

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

  Log Message:
  -----------
  [X86] X86ISelLowering.cpp - add clang-format on/off tags around 'compressed' switch code. NFC.

Stop clang-format trying to expand manually compressed lookup switch() code - if it still fits into 80col, then keep it to a single line instead of expanding across multiple lines each.


  Commit: 0c623b58e39cba7e67a0049dbcac87fdcc0103e1
      https://github.com/llvm/llvm-project/commit/0c623b58e39cba7e67a0049dbcac87fdcc0103e1
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

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

  Log Message:
  -----------
  [X86] X86CompressEVEX.cpp - ensure we tie the operands on MOVBErr instructions

Minor correction for #79775 - noticed in EXPENSIVE_CHECKS builds


  Commit: ef67f63fa5f950f4056b5783e92e137342805d74
      https://github.com/llvm/llvm-project/commit/ef67f63fa5f950f4056b5783e92e137342805d74
  Author: Andrey Ali Khan Bolshakov <32954549+bolshakov-a at users.noreply.github.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M clang/lib/Sema/SemaDecl.cpp
    M clang/lib/StaticAnalyzer/Core/Environment.cpp
    M clang/test/Analysis/templates.cpp
    M clang/test/SemaTemplate/temp_arg_nontype_cxx20.cpp

  Log Message:
  -----------
  Fix analyzer crash on 'StructuralValue' (#79764)

`OpaqueValueExpr` doesn't necessarily contain a source expression.
Particularly, after #78041, it is used to carry the type and the value
kind of a non-type template argument of floating-point type or referring
to a subobject (those are so called `StructuralValue` arguments).

This fixes #79575.


  Commit: 2acf302c1bd562a648cc5bcd0bac04433696f5f4
      https://github.com/llvm/llvm-project/commit/2acf302c1bd562a648cc5bcd0bac04433696f5f4
  Author: Shengchen Kan <shengchen.kan at intel.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

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

  Log Message:
  -----------
  [X86][NFC] X86CompressEVEX.cpp - Simplify code after 0c623b58e39cba7e67a0049dbcac87fdcc0103e1


  Commit: 683bc94e1637bd9bacc978f5dc3c79cfc8ff94b9
      https://github.com/llvm/llvm-project/commit/683bc94e1637bd9bacc978f5dc3c79cfc8ff94b9
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M libcxx/docs/ReleaseNotes/19.rst
    M libcxx/include/__config
    M libcxx/include/__format/format_functions.h

  Log Message:
  -----------
  [libc++] Officially remove _VSTD and _LIBCPP_INLINE_VISIBILITY (#79885)

Those were deprecated and basically not used anymore after we renamed
them in batch. This patch removes the macros entirely.


  Commit: fdac7d0b6f74f919d319b31a0680c77f66732586
      https://github.com/llvm/llvm-project/commit/fdac7d0b6f74f919d319b31a0680c77f66732586
  Author: Sergio Afonso <safonsof at amd.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h

  Log Message:
  -----------
  [OpenMPIRBuilder] NFC: Improve description of IsTargetDevice and IsGPU (#79322)

This patch tries to better explain the differences between the
`IsTargetDevice` and `IsGPU` flags of the `OpenMPIRBuilderConfig`.


  Commit: 02a275cca166546e32153997e4c800763ba7fc85
      https://github.com/llvm/llvm-project/commit/02a275cca166546e32153997e4c800763ba7fc85
  Author: Shengchen Kan <shengchen.kan at intel.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

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

  Log Message:
  -----------
  [X86][CodeGen] Add entries for TB_BCAST_SH in getBroadcastOpcode


  Commit: 6251b6bd8d219fe2d99d125095622566721fe6f4
      https://github.com/llvm/llvm-project/commit/6251b6bd8d219fe2d99d125095622566721fe6f4
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M llvm/test/CodeGen/AArch64/vec3-loads-ext-trunc-stores.ll

  Log Message:
  -----------
  [AArch64] Add tests with sext of vec3 loads.

Another round of additional tests for
https://github.com/llvm/llvm-project/pull/7863
with different sext/zext and use variants.


  Commit: a0d266d705d6c145e8daa08a08f70e9498ec3d0b
      https://github.com/llvm/llvm-project/commit/a0d266d705d6c145e8daa08a08f70e9498ec3d0b
  Author: Krystian Stasiowski <sdkrystian at gmail.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/lib/Sema/SemaDecl.cpp
    M clang/test/CXX/class.access/p4.cpp
    A clang/test/CXX/dcl.dcl/dcl.enum/p1.cpp
    M clang/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.type.elab/p1.cpp
    M clang/test/CXX/drs/dr16xx.cpp
    M clang/test/CXX/module/module.interface/p2-2.cpp
    M clang/test/SemaCXX/enum-scoped.cpp
    M clang/test/SemaCXX/nested-name-spec.cpp
    M clang/test/SemaTemplate/elaborated-type-specifier.cpp
    M clang/test/SemaTemplate/qualified-id.cpp

  Log Message:
  -----------
  [Clang][Sema] Allow elaborated-type-specifiers that declare member class template explict specializations (#78720)

According to [[dcl.type.elab]
p2](http://eel.is/c++draft/dcl.type.elab#2):
> If an
[elaborated-type-specifier](http://eel.is/c++draft/dcl.type.elab#nt:elaborated-type-specifier)
is the sole constituent of a declaration, the declaration is ill-formed
unless it is an explicit specialization, an explicit instantiation or it
has one of the following forms [...]

Consider the following:
```cpp
template<typename T>
struct A 
{
    template<typename U>
    struct B;
};

template<>
template<typename U>
struct A<int>::B; // #1
```
The _elaborated-type-specifier_ at `#1` declares an explicit
specialization (which is itself a template). We currently (incorrectly)
reject this, and this PR fixes that.

I moved the point at which _elaborated-type-specifiers_ with
_nested-name-specifiers_ are diagnosed from `ParsedFreeStandingDeclSpec`
to `ActOnTag` for two reasons: `ActOnTag` isn't called for explicit
instantiations and partial/explicit specializations, and because it's
where we determine if a member specialization is being declared.

With respect to diagnostics, I am currently issuing the diagnostic
without marking the declaration as invalid or returning early, which
results in more diagnostics that I think is necessary. I would like
feedback regarding what the "correct" behavior should be here.


  Commit: f89d707e5f5e531fb854f70e02d9eaa32aaf19bd
      https://github.com/llvm/llvm-project/commit/f89d707e5f5e531fb854f70e02d9eaa32aaf19bd
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M libcxx/include/__config
    M libcxx/include/__utility/pair.h
    M libcxx/include/string
    M libcxx/include/tuple
    M libcxx/include/vector

  Log Message:
  -----------
  [libc++] Accept __VA_ARGS__ in conditional _NOEXCEPT_ macro (#79877)

This prevents having to use double parentheses in common cases.


  Commit: 7162fd750ee5f786f3b9b7a7b26b72ee36ce772e
      https://github.com/llvm/llvm-project/commit/7162fd750ee5f786f3b9b7a7b26b72ee36ce772e
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M libcxx/docs/DesignDocs/ThreadingSupportAPI.rst
    M libcxx/include/CMakeLists.txt
    M libcxx/include/__atomic/atomic_flag.h
    M libcxx/include/__atomic/atomic_sync.h
    M libcxx/include/__condition_variable/condition_variable.h
    M libcxx/include/__mutex/mutex.h
    M libcxx/include/__thread/formatter.h
    M libcxx/include/__thread/id.h
    M libcxx/include/__thread/jthread.h
    A libcxx/include/__thread/support.h
    A libcxx/include/__thread/support/c11.h
    A libcxx/include/__thread/support/external.h
    A libcxx/include/__thread/support/pthread.h
    A libcxx/include/__thread/support/windows.h
    M libcxx/include/__thread/this_thread.h
    M libcxx/include/__thread/thread.h
    M libcxx/include/__thread/timed_backoff_policy.h
    R libcxx/include/__threading_support
    M libcxx/include/libcxx.imp
    M libcxx/include/module.modulemap.in
    M libcxx/include/mutex
    M libcxx/include/semaphore
    M libcxx/include/thread
    M libcxx/src/call_once.cpp
    M libcxx/src/condition_variable_destructor.cpp
    M libcxx/src/mutex_destructor.cpp
    M libcxx/src/support/win32/thread_win32.cpp
    M libcxx/utils/generate_iwyu_mapping.py
    M libcxx/utils/libcxx/test/modules.py
    M libcxxabi/src/cxa_exception_storage.cpp
    M libcxxabi/src/cxa_guard_impl.h
    M libcxxabi/src/cxa_thread_atexit.cpp
    M libcxxabi/src/fallback_malloc.cpp
    M libcxxabi/test/test_fallback_malloc.pass.cpp

  Log Message:
  -----------
  [libc++] Split the monolithic __threading_support header (#79654)

The <__threading_support> header is a huge beast and it's really
difficult to navigate. I find myself struggling to find what I want
every time I have to open it, and I've been considering splitting it up
for years for that reason.

This patch aims not to contain any functional change. The various
implementations of the threading base are simply moved to separate
headers and then the individual headers are simplified in mechanical
ways. For example, we used to have redundant declarations of all the
functions at the top of `__threading_support`, and those are removed
since they are not needed anymore. The various #ifdefs are also
simplified and removed when they become unnecessary.

Finally, this patch adds documentation for the API we expect from any
threading implementation.


  Commit: e37a6008831b38477516362892dd3c0d97087eff
      https://github.com/llvm/llvm-project/commit/e37a6008831b38477516362892dd3c0d97087eff
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M libcxx/include/__tuple/sfinae_helpers.h
    M libcxx/test/libcxx/utilities/tuple/tuple.tuple/tuple.assign/tuple_array_template_depth.pass.cpp

  Log Message:
  -----------
  [libc++][NFC] Remove dead code implementing some tuple SFINAE checks (#79871)

Some of the checks in sfinae_helpers.h were not used anymore since we
refactored the std::tuple implementation and were now dead code. This
patch removes the code.


  Commit: 4017f04e310454ccced4c404a23f7698eec735ca
      https://github.com/llvm/llvm-project/commit/4017f04e310454ccced4c404a23f7698eec735ca
  Author: Tacet <4922191+AdvenamTacet at users.noreply.github.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M libcxx/include/string

  Log Message:
  -----------
  Remove unnecessary _LIBCPP_STRING_INTERNAL_MEMORY_ACCESS (#79574)

This macro is unnecessary with `basic_string& operator=(value_type
__c)`.


  Commit: c3668779c13596e223c26fbd49670d18cd638c40
      https://github.com/llvm/llvm-project/commit/c3668779c13596e223c26fbd49670d18cd638c40
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M libcxx/docs/ReleaseNotes/19.rst
    M libcxx/include/__string/char_traits.h
    R libcxx/test/libcxx/strings/char.traits/char.traits.specializations/arbitrary_char_type.deprecated.verify.cpp
    R libcxx/test/libcxx/strings/char.traits/char.traits.specializations/arbitrary_char_type.pass.cpp

  Log Message:
  -----------
  [libc++] Remove deprecated char_traits base template (#72694)

This patch has quite a bit of history. First, it must be noted that the
Standard only specifies specializations of char_traits for char,
char8_t, char16_t, char32_t and wchar_t. However, before this patch, we
would provide a base template that accepted anything, and as a result
code like `std::basic_string<long long>` would compile but nobody knows
what it really does. It basically compiles by accident.

We marked the base template as deprecated in LLVM 15 or 16 and were
planning on removing it in LLVM 17, which we did in e30a148b098d.
However, it turned out that the deprecation warning had never been
visible in user code since Clang did not surface that warning from
system headers. As a result, this caught people by surprise and we
decided to reintroduce the base template in LLVM 17 in cce062d226ba.

Since then, #70353 changed Clang so that such deprecation warnings would
be visible from user code. Hence, this patch closes the loop and removes
the deprecated specializations.


  Commit: 837bff11cb7d31f40805c73d4f539960a77eda33
      https://github.com/llvm/llvm-project/commit/837bff11cb7d31f40805c73d4f539960a77eda33
  Author: Sergio Afonso <safonsof at amd.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M flang/include/flang/Lower/Bridge.h
    M flang/include/flang/Optimizer/CodeGen/CGPasses.td
    M flang/include/flang/Optimizer/CodeGen/Target.h
    M flang/include/flang/Optimizer/Dialect/Support/FIRContext.h
    M flang/lib/Frontend/FrontendActions.cpp
    M flang/lib/Lower/Bridge.cpp
    M flang/lib/Optimizer/CodeGen/CodeGen.cpp
    M flang/lib/Optimizer/CodeGen/Target.cpp
    M flang/lib/Optimizer/CodeGen/TargetRewrite.cpp
    M flang/lib/Optimizer/CodeGen/TypeConverter.cpp
    M flang/lib/Optimizer/Dialect/Support/FIRContext.cpp
    M flang/test/Driver/save-mlir-temps.f90
    A flang/test/Fir/target-rewrite-target-cpu.fir
    A flang/test/Fir/target-rewrite-target-features.fir
    A flang/test/Lower/target-features-amdgcn.f90
    A flang/test/Lower/target-features-x86_64.f90
    M flang/tools/bbc/bbc.cpp
    M flang/tools/tco/tco.cpp
    M flang/unittests/Optimizer/FIRContextTest.cpp

  Log Message:
  -----------
  [Flang][Lower] Attach target_cpu and target_features attributes to MLIR functions (#78289)

This patch forwards the target CPU and features information from the
Flang frontend to MLIR func.func operation attributes, which are later
used to populate the target_cpu and target_features llvm.func
attributes.

This is achieved in two stages:

1. Introduce the `fir.target_cpu` and `fir.target_features` module
attributes with information from the target machine immediately after
the initial creation of the MLIR module in the lowering bridge.

2. Update the target rewrite flang pass to get this information from the
module and pass it along to all func.func MLIR operations, respectively
as attributes named `target_cpu` and `target_features`. These attributes
will be automatically picked up during Func to LLVM dialect lowering and
used to initialize the corresponding llvm.func named attributes.

The target rewrite and FIR to LLVM lowering passes are updated with the
ability to override these module attributes, and the `CodeGenSpecifics`
optimizer class is augmented to make this information available to
target-specific MLIR transformations.

This completes a full flow by which target CPU and features make it all
the way from compiler options to LLVM IR function attributes.


  Commit: 7565ae6eb99b6d3c5d83d04404a2df1b3785dbfe
      https://github.com/llvm/llvm-project/commit/7565ae6eb99b6d3c5d83d04404a2df1b3785dbfe
  Author: David Spickett <david.spickett at linaro.org>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M lldb/test/API/functionalities/breakpoint/hardware_breakpoints/require_hw_breakpoints/TestRequireHWBreakpoints.py

  Log Message:
  -----------
  [lldb][test][NFC] Refactor xfails in TestRequireHWBreakpoints.py

This file used a strange, multi-level setup where we skipped on
a function we used for xfailing. Let's not do that, just skip
the one test we care about.

Also added a comment to explain how this file works. The tests
*want* calls to fail when we ask for only hardware breaks
but have none to use.

If you don't know that, it all seems backwards.


  Commit: ace383df52c0d2cf5f0afa4508f831a027fccbb4
      https://github.com/llvm/llvm-project/commit/ace383df52c0d2cf5f0afa4508f831a027fccbb4
  Author: Guillaume Chatelet <gchatelet at google.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M libc/src/__support/FPUtil/DivisionAndRemainderOperations.h
    M libc/src/__support/FPUtil/FPBits.h
    M libc/src/__support/FPUtil/generic/FMod.h
    M libc/src/__support/FPUtil/generic/sqrt.h
    M libc/src/__support/FPUtil/generic/sqrt_80_bit_long_double.h
    M libc/src/__support/str_to_float.h
    M libc/src/math/generic/acosf.cpp
    M libc/src/math/generic/acoshf.cpp
    M libc/src/math/generic/asinf.cpp
    M libc/src/math/generic/atanhf.cpp
    M libc/src/math/generic/cosf.cpp
    M libc/src/math/generic/log.cpp
    M libc/src/math/generic/log10.cpp
    M libc/src/math/generic/log10f.cpp
    M libc/src/math/generic/log1p.cpp
    M libc/src/math/generic/log1pf.cpp
    M libc/src/math/generic/log2.cpp
    M libc/src/math/generic/log2f.cpp
    M libc/src/math/generic/logf.cpp
    M libc/src/math/generic/powf.cpp
    M libc/src/math/generic/sincosf.cpp
    M libc/src/math/generic/sinf.cpp
    M libc/src/math/generic/tanf.cpp
    M libc/test/UnitTest/FPMatcher.h
    M libc/test/src/__support/FPUtil/fpbits_test.cpp
    M libc/test/src/math/FDimTest.h
    M libc/test/src/math/FmaTest.h
    M libc/test/src/math/HypotTest.h
    M libc/test/src/math/ILogbTest.h
    M libc/test/src/math/LdExpTest.h
    M libc/test/src/math/NextAfterTest.h
    M libc/test/src/math/RIntTest.h
    M libc/test/src/math/RemQuoTest.h
    M libc/test/src/math/RoundToIntegerTest.h
    M libc/test/src/math/smoke/FDimTest.h
    M libc/test/src/math/smoke/FmaTest.h
    M libc/test/src/math/smoke/HypotTest.h
    M libc/test/src/math/smoke/ILogbTest.h
    M libc/test/src/math/smoke/LdExpTest.h
    M libc/test/src/math/smoke/NextAfterTest.h
    M libc/test/src/math/smoke/NextTowardTest.h
    M libc/test/src/math/smoke/RIntTest.h
    M libc/test/src/math/smoke/RemQuoTest.h
    M libc/test/src/math/smoke/RoundToIntegerTest.h
    M libc/test/src/stdio/sprintf_test.cpp
    M libc/test/src/stdio/sscanf_test.cpp

  Log Message:
  -----------
  [libc][NFC] Rename `FPBits` nan functions (#79998)

- [libc][NFC] Rename FPBits nan functions
- rename build_signaling_nan in signaling_nan
- rename build_quiet_nan to quiet_nan


  Commit: 8774d2936dd1cf0ee8d74ff600359d465179d009
      https://github.com/llvm/llvm-project/commit/8774d2936dd1cf0ee8d74ff600359d465179d009
  Author: ita-sc <109672931+ita-sc at users.noreply.github.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp

  Log Message:
  -----------
  [lldb][RISCV] Fix connection error to gdb server for RISC-V (#79990)

This patch fix connection for LLDB for remote gdb server running on
RISC-V.

You can test connection with OpenOCD or qemu-riscv64.


  Commit: 748c29590829cdc0b9572e51d212b3a1d313c318
      https://github.com/llvm/llvm-project/commit/748c29590829cdc0b9572e51d212b3a1d313c318
  Author: Alex Bradbury <asb at igalia.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
    M mlir/lib/Target/LLVMIR/ModuleImport.cpp
    M mlir/lib/Target/LLVMIR/ModuleTranslation.cpp
    M mlir/test/Dialect/LLVMIR/func.mlir
    M mlir/test/Target/LLVMIR/Import/function-attributes.ll
    A mlir/test/Target/LLVMIR/fp-math-function-attributes.mlir

  Log Message:
  -----------
  [MLIR][LLVM] Add fast-math related function attribute support (#79812)

Adds unsafe-fp-math, no-infs-fp-math, no-nans-fp-math,
approx-func-fp-math, and no-signed-zeros-fp-math function attributes.

This allows code generators using the LLVMIR dialect to match the
codegen of Clang.


  Commit: d1e162e5d94e8c0b1c46bc0c9c45f96eacdd75c8
      https://github.com/llvm/llvm-project/commit/d1e162e5d94e8c0b1c46bc0c9c45f96eacdd75c8
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/test/CodeGen/AArch64/vec3-loads-ext-trunc-stores.ll

  Log Message:
  -----------
  [AArch64] Add custom lowering for load <3 x i8>. (#78632)

Add custom combine to lower load <3 x i8> as the more efficient sequence
below:
   ldrb wX, [x0, #2]
   ldrh wY, [x0]
   orr wX, wY, wX, lsl #16
   fmov s0, wX

At the moment, there are almost no cases in which such vector operations
will be generated automatically. The motivating case is non-power-of-2
SLP vectorization: https://github.com/llvm/llvm-project/pull/77790


  Commit: 77e5136ce4221a9f02e905e6079f01d497cfe79e
      https://github.com/llvm/llvm-project/commit/77e5136ce4221a9f02e905e6079f01d497cfe79e
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M llvm/include/llvm/CodeGen/RegisterClassInfo.h
    M llvm/lib/CodeGen/RegisterClassInfo.cpp

  Log Message:
  -----------
  [CodeGen] Use RegUnits in RegisterClassInfo::getLastCalleeSavedAlias (#79996)

Change the implementation of getLastCalleeSavedAlias to use RegUnits
instead of register aliases. This is much faster on targets like AMDGPU
which define a very large number of overlapping register tuples.

No functional change intended. If PhysReg overlaps multiple CSRs then
getLastCalleeSavedAlias(PhysReg) could conceivably return a different
arbitrary one, but currently it is only used for some debug printing
anyway.

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


  Commit: 6aed6cc40ec0006bb43f1ec4b2ec87702392ad6e
      https://github.com/llvm/llvm-project/commit/6aed6cc40ec0006bb43f1ec4b2ec87702392ad6e
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M openmp/libomptarget/DeviceRTL/CMakeLists.txt
    M openmp/libomptarget/DeviceRTL/src/Mapping.cpp
    M openmp/libomptarget/DeviceRTL/src/Misc.cpp
    M openmp/libomptarget/DeviceRTL/src/Synchronization.cpp
    M openmp/libomptarget/DeviceRTL/src/Utils.cpp

  Log Message:
  -----------
  [Libomptarget] Remove remaining inline assembly from the device RTL (#79922)

Summary:
Recent patches have added some missing intrinsic functions NVPTX. This
patch gets rid of all the remaining uses of inline assembly. The one
change that wasn't directly replaced with a built-in was the `pack` and
`unpack` implementations. However, using the generic C implementation is
equivalent to the output SASS when run through PTXAS.


  Commit: 976374d9828582f1ca4a4bb4da96fb67c20949f8
      https://github.com/llvm/llvm-project/commit/976374d9828582f1ca4a4bb4da96fb67c20949f8
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

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

  Log Message:
  -----------
  [SLP][NFC]Use MutableArrayRef instead of SmallVectorImpl&, NFC.


  Commit: 0f9ab7b861268618988c5271e2227b9ab4c1827b
      https://github.com/llvm/llvm-project/commit/0f9ab7b861268618988c5271e2227b9ab4c1827b
  Author: David Benjamin <davidben at google.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M libcxx/include/deque
    M libcxx/test/libcxx/containers/sequences/deque/asan_caterpillar.pass.cpp
    A libcxx/test/libcxx/containers/sequences/deque/assert.pass.cpp

  Log Message:
  -----------
  [libc++][hardening] Add hardening assertions to std::deque (#79397)

This aligns std::deque with std::vector w.r.t. hardening checks. There's
probably more that can be done with iterators, but start with this.

This caught a bug with one of libc++'s tests. One of the erase calls in
asan_caterpillar.pass.cpp was a no-op because the iterators were in the
other order. (deque::erase happened to cleanly do nothing when the
distance is negative.)

Fixes #63809


  Commit: 24a903c4057e06579e475277377713dc49fef232
      https://github.com/llvm/llvm-project/commit/24a903c4057e06579e475277377713dc49fef232
  Author: Guillaume Chatelet <gchatelet at google.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M libc/src/__support/FPUtil/FPBits.h
    M libc/src/math/generic/explogxf.h
    M libc/src/math/generic/hypotf.cpp
    M libc/src/math/generic/log1pf.cpp
    M libc/src/math/generic/range_reduction_fma.h
    M libc/test/src/math/atanhf_test.cpp
    M libc/test/src/math/smoke/atanhf_test.cpp
    M libc/test/src/math/smoke/nan_test.cpp
    M libc/test/src/math/smoke/nanf_test.cpp

  Log Message:
  -----------
  [libc][NFC] Move functions from `FPBits` to `FPRep`, make `bits` member private (#79974)


  Commit: 21d75ee2164015e0023b6ec0067eac731c56448b
      https://github.com/llvm/llvm-project/commit/21d75ee2164015e0023b6ec0067eac731c56448b
  Author: Hristo Hristov <hghristov.rmm at gmail.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M libcxx/docs/Contributing.rst

  Log Message:
  -----------
  [libc++][docs] Add `_LIBCPP_PUSH_MACROS` and `_LIBCPP_POP_MACROS` (#79963)

I got tripped twice after: 7b4622514d232ce5f7110dd8b20d90e81127c467
Let's at least mention these in the `Contributing.rst` doc.


  Commit: b52fe2df9178022f146fe1776b9a9fd7f4b29bb4
      https://github.com/llvm/llvm-project/commit/b52fe2df9178022f146fe1776b9a9fd7f4b29bb4
  Author: erichkeane <ekeane at nvidia.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M clang/include/clang/Basic/OpenACCKinds.h
    M clang/include/clang/Parse/Parser.h
    M clang/lib/Parse/ParseOpenACC.cpp
    M clang/test/ParserOpenACC/parse-clauses.c

  Log Message:
  -----------
  [OpenACC] Implement 'gang' clause parsing.

The 'gang' clause takes a 'gang-arg-list', which is one of three 'tag'
values, followed by either an 'int-expr' or a 'size-expr', both of which
we already have parsing functions for.

The optional tag values are only slightly complicated, as one is a
keyword (static), so mild modifications needed to be made for that.


  Commit: a9ffdc171aea346754fd63e9b5986853f2d819e7
      https://github.com/llvm/llvm-project/commit/a9ffdc171aea346754fd63e9b5986853f2d819e7
  Author: Billy Laws <blaws05 at gmail.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M lld/Common/DriverDispatcher.cpp
    M lld/MinGW/Driver.cpp
    M lld/test/MinGW/driver.test

  Log Message:
  -----------
  [lld] [MinGW] Support targeting ARM64EC (#78911)

'arm64ecpe' was chosen arbitrarily as gcc MinGW doesn't provide EC
support.


  Commit: c0f29e83dbcc6789e74918ac6d8d46b8833f45aa
      https://github.com/llvm/llvm-project/commit/c0f29e83dbcc6789e74918ac6d8d46b8833f45aa
  Author: Boian Petkantchin <boian.petkantchin at amd.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M mlir/docs/Dialects/Mesh.md
    M mlir/include/mlir/Dialect/Mesh/IR/MeshOps.td

  Log Message:
  -----------
  [mlir][mesh] Make most collectives pure (#79643)

There are assumptions of matching/consistent paths of execution under SPMD that allow to have pure collective communication operations.


  Commit: 4d3b502704809c9605b9568c6feb2a2f0ca51907
      https://github.com/llvm/llvm-project/commit/4d3b502704809c9605b9568c6feb2a2f0ca51907
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.cnstr/allocs.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.cnstr/converting_copy.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.cnstr/converting_move.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.cnstr/copy.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.cnstr/deduct.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.cnstr/default.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/allocate_size.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/allocate_size.verify.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/allocate_size_hint.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/allocate_size_hint.verify.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct_pair.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct_pair_const_lvalue_pair.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct_pair_piecewise.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct_pair_rvalue.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct_pair_values.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct_type.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/deallocate.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/destroy.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/inner_allocator.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/max_size.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/outer_allocator.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/select_on_container_copy_construction.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.types/allocator_pointers.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.types/inner_allocator_type.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.types/is_always_equal.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.types/propagate_on_container_copy_assignment.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.types/propagate_on_container_move_assignment.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.types/propagate_on_container_swap.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/scoped.adaptor.operators/copy_assign.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/scoped.adaptor.operators/eq.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/scoped.adaptor.operators/move_assign.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/types.pass.cpp

  Log Message:
  -----------
  [libc++][NFC] Format the scoped_allocator_adaptor tests


  Commit: a3e35a4ea6fa8f1d765674c57ad280d1cbeceb4b
      https://github.com/llvm/llvm-project/commit/a3e35a4ea6fa8f1d765674c57ad280d1cbeceb4b
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    A libcxx/test/std/utilities/allocator.adaptor/types.compile.pass.cpp
    R libcxx/test/std/utilities/allocator.adaptor/types.pass.cpp

  Log Message:
  -----------
  [libc++] Move scoped allocator adaptor test to .compile.pass.cpp


  Commit: 0d965080b48c5661d7cc5d043be19a6a72165001
      https://github.com/llvm/llvm-project/commit/0d965080b48c5661d7cc5d043be19a6a72165001
  Author: Nico Weber <thakis at chromium.org>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

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

  Log Message:
  -----------
  [gn] port 7162fd750ee5


  Commit: 3a085e98ac1277834d99f4f4ce0d5c95fccb9092
      https://github.com/llvm/llvm-project/commit/3a085e98ac1277834d99f4f4ce0d5c95fccb9092
  Author: Nico Weber <thakis at chromium.org>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

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

  Log Message:
  -----------
  [gn] use write_cmake_config() for __assertion_handler


  Commit: 0129ff17a9885d76d3700fee56500848c28e3fc1
      https://github.com/llvm/llvm-project/commit/0129ff17a9885d76d3700fee56500848c28e3fc1
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M libc/test/include/CMakeLists.txt

  Log Message:
  -----------
  [libc] Fix running 'stdbit.h' tests if file is never generated

Summary:
This test was added to test the generated header. Unfortunately this
doesn't work if the header is never generated. Add a check to make sure
the user has included it in the list of headers.


  Commit: 00582636009d51c5781b9cae8fde858ab3758306
      https://github.com/llvm/llvm-project/commit/00582636009d51c5781b9cae8fde858ab3758306
  Author: Hirofumi Nakamura <k.nakamura.hirofumi at gmail.com>
  Date:   2024-01-31 (Wed, 31 Jan 2024)

  Changed paths:
    M clang/lib/Format/FormatToken.h
    M clang/lib/Format/FormatTokenLexer.cpp
    M clang/unittests/Format/TokenAnnotatorTest.cpp

  Log Message:
  -----------
  [clang-format] Support of TableGen tokens with unary operator like form, bang operators and numeric literals. (#78996)

Adds the support for tokens that have forms like unary operators.
- bang operators:  `!name`
- cond operator: `!cond`
- numeric literals: `+1`, `-1`
cond operator are one of bang operators but is distinguished because it has very specific syntax.


  Commit: fc7c79b60ca0846f1cc916b6b04eedd1fc21537e
      https://github.com/llvm/llvm-project/commit/fc7c79b60ca0846f1cc916b6b04eedd1fc21537e
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

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

  Log Message:
  -----------
  [X86] hasBZHI - simplify to a basic check as there's no need for a switch statement. NFCI.


  Commit: fa10121415adfea57954eddcec92a13c7ebab0ac
      https://github.com/llvm/llvm-project/commit/fa10121415adfea57954eddcec92a13c7ebab0ac
  Author: Ryan Holt <ryanholt at mathworks.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    A mlir/include/mlir/Dialect/MLProgram/Transforms/BufferizableOpInterfaceImpl.h
    M mlir/include/mlir/InitAllDialects.h
    M mlir/lib/Dialect/Bufferization/Transforms/Bufferize.cpp
    M mlir/lib/Dialect/Bufferization/Transforms/OneShotModuleBufferize.cpp
    A mlir/lib/Dialect/MLProgram/Transforms/BufferizableOpInterfaceImpl.cpp
    M mlir/lib/Dialect/MLProgram/Transforms/CMakeLists.txt
    A mlir/test/Dialect/MLProgram/one-shot-bufferize.mlir

  Log Message:
  -----------
  [mlir][MLProgram] Add MLProgram to MemRef bufferization pass (#75103)

There is currently no lowering out of `ml_program` in the LLVM
repository. This change adds a lowering to `memref` so that it can be
lowered all the way to LLVM. This lowering was taken from the [reference
backend in
torch-mlir](https://github.com/llvm/torch-mlir/commit/f41695360019bde71d52ca7548944d5488779e12
).

I had tried implementing the `BufferizableOpInterface` for `ml_program`
instead of adding a new pass but that did not work because
`OneShotBufferize` does not visit module-level ops like
`ml_program.global`.


  Commit: fdf73e949565686804fbd2ab1b3a3bf440a250ca
      https://github.com/llvm/llvm-project/commit/fdf73e949565686804fbd2ab1b3a3bf440a250ca
  Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

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

  Log Message:
  -----------
  [mlir][memref] Remove incorrect `memref.transpose` fold (#79809)

This folded casts into `memref.transpose` without updating the result
type of the transpose op, which resulted in IR that failed to verify for
statically sized memrefs.

i.e.

```mlir
%cast = memref.cast %0 : memref<?x4xf32> to memref<?x?xf32>
%transpose = memref.transpose %cast : memref<?x?xf32> to memref<?x?xf32>
```

would fold to:

```mlir
// Fails verification:
%transpose = memref.transpose %cast : memref<?x4xf32> to memref<?x?xf32>
```


  Commit: 8a5bdd899f3cb57024d92b96c16e805ca9924ac7
      https://github.com/llvm/llvm-project/commit/8a5bdd899f3cb57024d92b96c16e805ca9924ac7
  Author: Stefan Gränitz <stefan.graenitz at gmail.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M llvm/tools/llvm-jitlink/llvm-jitlink.cpp

  Log Message:
  -----------
  [llvm-jitlink] Fix detectStubKind() for big endian systems (#79970)

This function is used in `jitlink-check` lines in LIT tests. In #78371 I
missed to swap initial instruction bytes for systems that store the
constants as big-endian.


  Commit: b23e518ce0df5b0835aba245cda50379bd896374
      https://github.com/llvm/llvm-project/commit/b23e518ce0df5b0835aba245cda50379bd896374
  Author: Thomas Preud'homme <thomas.preudhomme at arm.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

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

  Log Message:
  -----------
  Fix TOSA FP16->INT16 CAST lowering (#79299)

Currently cast from FP to int is implemented by clamping on the min and
max
integer values in the floating-point domain and then converting to
integer. However, the max int values are often non representable in the
floating-point input type due to lack of mantissa bits.

This patch instead use a select acting on a compare against max int + 1
which is representable in floating-point. It also has a special lowering
for cases where the integer range is wider than the floating-point range
to clamp the infinite values.


  Commit: 2960656eb909b5361ce2c3f641ee341769076ab7
      https://github.com/llvm/llvm-project/commit/2960656eb909b5361ce2c3f641ee341769076ab7
  Author: Shengchen Kan <shengchen.kan at intel.com>
  Date:   2024-01-31 (Wed, 31 Jan 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86InstrInfo.cpp
    M llvm/lib/Target/X86/X86InstrInfo.h

  Log Message:
  -----------
  [X86][NFC] Extract code for commute in foldMemoryOperandImpl into functions

To share code for folding broadcast in #79761


  Commit: c5edef6279ecc1469029184637343854243cc5e6
      https://github.com/llvm/llvm-project/commit/c5edef6279ecc1469029184637343854243cc5e6
  Author: Matthias Springer <springerm at google.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M mlir/lib/Dialect/MLProgram/Transforms/CMakeLists.txt
    M mlir/lib/Transforms/Utils/GreedyPatternRewriteDriver.cpp

  Log Message:
  -----------
  [mlir] Fix build after #75103

After #75103, `MLPrgramTransforms` depends on `BufferizationDialect`.
Also fix an unrelated compile error in `GreedyPatternRewriteDriver.cpp`.
(This was not failing on CI. I may be running an old compiler locally.)


  Commit: 223025a6142d14b772e9dc73e5faf507a08098da
      https://github.com/llvm/llvm-project/commit/223025a6142d14b772e9dc73e5faf507a08098da
  Author: Nick Desaulniers <nickdesaulniers at users.noreply.github.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M libc/docs/index.rst
    A libc/docs/stdbit.rst

  Log Message:
  -----------
  [libc][docs] add page for stdbit.h (#79908)

To build libc docs:
- Configure with `-DLLVM_ENABLE_SPHINX=ON -DLIBC_INCLUDE_DOCS=ON`
- Build with `ninja docs-libc-html`


  Commit: cdb320b407fc375f91e4b8be6f0ce8bf6bc77ba1
      https://github.com/llvm/llvm-project/commit/cdb320b407fc375f91e4b8be6f0ce8bf6bc77ba1
  Author: Daniel Chen <cdchen at ca.ibm.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M flang/lib/Lower/CallInterface.cpp
    M flang/lib/Lower/ConvertCall.cpp
    M flang/lib/Lower/ConvertExprToHLFIR.cpp
    M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
    M flang/test/Lower/HLFIR/procedure-pointer.f90
    M flang/test/Lower/Intrinsics/associated-proc-pointers.f90

  Log Message:
  -----------
  [Flang]: Lowering reference to functions that return a procedure pointer (#78194)

This PR adds lowering the reference to a function that returns a
procedure pointer. It also fixed intrinsic ASSOCIATED to take such
argument.

---------

Co-authored-by: jeanPerier <jperier at nvidia.com>


  Commit: fe0d16ff60fa2ef7fdbda3574493534979cce742
      https://github.com/llvm/llvm-project/commit/fe0d16ff60fa2ef7fdbda3574493534979cce742
  Author: Joel Wee <joelwee at google.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M mlir/lib/Dialect/MLProgram/Transforms/BufferizableOpInterfaceImpl.cpp
    M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel

  Log Message:
  -----------
  [mlir] Fix after #75103


  Commit: b9d623105d51f5fc2d120c862b4e2bbff310f728
      https://github.com/llvm/llvm-project/commit/b9d623105d51f5fc2d120c862b4e2bbff310f728
  Author: Vyacheslav Levytskyy <89994100+VyacheslavLevytskyy at users.noreply.github.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
    A llvm/test/CodeGen/SPIRV/unnamed-global.ll

  Log Message:
  -----------
  generate a name of an unnamed global variable for Instruction Selection (#78293)

The goal of this PR is to fix the issue of global unnamed variables
causing SPIR-V Backend code generation to crash:
https://github.com/llvm/llvm-project/issues/78278

The reason for the crash is that GlobalValue's getGlobalIdentifier()
would fail for unnamed global variable when trying to access the first
character of the name (see lib/IR/Globals.cpp:150). This leads to assert
in Debug and undefined behaviour in Release builds.

The proposed fix generates a name of an unnamed global variable as
__unnamed_<unsigned number>, in a style of similar existing LLVM
implementation (see lib/IR/Mangler.cpp:131). A new class member variable
is added into `SPIRVInstructionSelector` class to keep track of the
number we give to anonymous global values to generate the same name
every time when this is needed.

The patch adds a new LIT test with the smallest implementation of
reproducer ll code.


  Commit: 39483797b8981528eafaf6dad557ccfb2312e1ef
      https://github.com/llvm/llvm-project/commit/39483797b8981528eafaf6dad557ccfb2312e1ef
  Author: Vyacheslav Levytskyy <89994100+VyacheslavLevytskyy at users.noreply.github.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
    A llvm/test/CodeGen/SPIRV/token/token-type-preallocated-setup-arg.ll
    A llvm/test/CodeGen/SPIRV/token/token-type-requires-extension.ll

  Log Message:
  -----------
  prevent undefined behaviour of SPIR-V Backend non-asserts builds when dealing with token type (#78437)

The goal of this PR is to fix the issue when use of token type in LLVM
intrinsic causes undefined behavior of SPIR-V Backend code generator
when assertions are disabled:
https://github.com/llvm/llvm-project/issues/78434

Among possible fix options, discussed in the
https://github.com/llvm/llvm-project/issues/78434 issue description, the
option to generate a meaningful error before execution arrives at the
`llvm_unreachable` call looks like a better solution for now, because
SPIR-V doesn't support token type anyway without additional extensions.

The PR is to generate a user-friendly error message and exit without
generating a stack dump when such a usage of token type was detected
that would lead to undefined behavior of SPIR-V Backend code generator.


  Commit: 9e02e8f1a76693f001c7f52ffddd92c492a2254e
      https://github.com/llvm/llvm-project/commit/9e02e8f1a76693f001c7f52ffddd92c492a2254e
  Author: Vyacheslav Levytskyy <89994100+VyacheslavLevytskyy at users.noreply.github.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.cpp
    M llvm/test/CodeGen/SPIRV/opencl/device_execution/execute_block.ll
    A llvm/test/CodeGen/SPIRV/pointers/struct-opaque-pointers.ll

  Log Message:
  -----------
  fix producing multiple identical opaque pointer types (#79060)

This PR fixes https://github.com/llvm/llvm-project/issues/79057 and
improves code generation for opaque pointers by replacing the culprit
SPIRVGlobalRegistry::getOpTypePointer() call with a more appropriate
SPIRVGlobalRegistry::getOrCreateSPIRVPointerType() call. The latter
function works together with the `DuplicatesTracker`
(`SPIRVGeneralDuplicatesTracker DT;` from `class SPIRVGlobalRegistry`)
to trace existence of previous definitions of opaque pointers. This
allows to produce just one `OpTypePointer` command for all identical
opaque pointers definitions and to return the very same type record for
subsequent `SPIRVGlobalRegistry::createSPIRVType()` invocations.

This PR alone improves code generation by producing a single needed
definition per all opaque pointers to i8 of the same address space
instead of multiple identical definitions produced before the patch.
>From the root cause analysis of
https://github.com/llvm/llvm-project/issues/79057 we see also that this
PR resolves the problem of inconsistency between keeping multiple
instruction for identical opaque pointer types and just a single record
for all such instructions in the `DuplicatesTracker`, and so it also
resolves the issue with crashes on creation of a struct with opaque
pointer fields due to the fact that now such struct fields refer to the
same operand `<id>` having a required record in the data structure used
for dependencies analysis (see
https://github.com/llvm/llvm-project/issues/79057).


  Commit: 036a20cc5104153f47762211d89544ab38d3ab5a
      https://github.com/llvm/llvm-project/commit/036a20cc5104153f47762211d89544ab38d3ab5a
  Author: Wanyi <kusmour at gmail.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M llvm/test/tools/llvm-gsymutil/X86/elf-empty-dir.yaml

  Log Message:
  -----------
  [llvm-gsymutil] Remove '--num-threads' in test (#79934)

Number of threads will automatically be set to a good value


  Commit: d17b005e46e240b2c95801a14e2c6fc5baa5b3f7
      https://github.com/llvm/llvm-project/commit/d17b005e46e240b2c95801a14e2c6fc5baa5b3f7
  Author: fabrizio-indirli <fabrizio.indirli at arm.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M mlir/lib/Dialect/SCF/Transforms/ParallelLoopFusion.cpp
    M mlir/test/Dialect/SCF/parallel-loop-fusion.mlir

  Log Message:
  -----------
  [mlir][scf] Relax requirements for loops fusion (#79187)

Enable the fusion of parallel loops also when the 1st loop contains
multiple write accesses to the same buffer, if the accesses are always
on the same indices.
Fix LIT test cases whose loops were not being fused.

Signed-off-by: Fabrizio Indirli <Fabrizio.Indirli at arm.com>


  Commit: b40d5b1b08564d23d5e0769892ebbc32447b2987
      https://github.com/llvm/llvm-project/commit/b40d5b1b08564d23d5e0769892ebbc32447b2987
  Author: Zixu Wang <9819235+zixu-w at users.noreply.github.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst

  Log Message:
  -----------
  [Docs] Add release note about Clang-defined target OS macros (#79879)


  Commit: 8369f619f589f756533435480c4a65bdfbaf1451
      https://github.com/llvm/llvm-project/commit/8369f619f589f756533435480c4a65bdfbaf1451
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M llvm/include/llvm/IR/Operator.h

  Log Message:
  -----------
  [IR] Add more efficient getOperand methods to some of the Operator subclasses. (#79943)

ConstantExpr does not use HungOffUses. If we know that the Instruction
the Operator subclass can represent also does not use HungOffUses, we
can be more efficient than falling back to User::getOperand.


  Commit: 80ee6083ae932841435638d455b8a6094530c2e2
      https://github.com/llvm/llvm-project/commit/80ee6083ae932841435638d455b8a6094530c2e2
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M llvm/include/llvm/Support/RISCVAttributes.h
    M llvm/lib/Target/RISCV/MCTargetDesc/RISCVTargetStreamer.cpp
    M llvm/unittests/Support/RISCVAttributeParserTest.cpp

  Log Message:
  -----------
  [RISCV] Remove StackAlign attribute enum. NFC (#79946)

The alignment is directly encoded in the attribute. There doesn't seem
to be a good reason to give the possible alignments a name.


  Commit: d8e1b451e21b62905a76715a78ebc26df25f4e41
      https://github.com/llvm/llvm-project/commit/d8e1b451e21b62905a76715a78ebc26df25f4e41
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

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

  Log Message:
  -----------
  [ValueTracking] Add experimental_get_vector_length to isKnownNonZero. (#79950)

If the input is non-zero, this intrinsic should also return a non-zero
value.


  Commit: 69cb99f9cb2e8757ad2c09b87fc96d5bff73c490
      https://github.com/llvm/llvm-project/commit/69cb99f9cb2e8757ad2c09b87fc96d5bff73c490
  Author: Felipe de Azevedo Piovezan <fpiovezan at apple.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M llvm/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp

  Log Message:
  -----------
  [DebugNames] Use hashes to quickly filter false positives (#79755)

The current implementation of DebugNames is _only_ using hashes to
compute the bucket number. Once inside the bucket, it reverts back to
string comparisons, even though not all hashes inside a bucket are
identical.

This commit changes the behavior so that we check the hash before
comparing strings. Such check is so important that it speeds up a simple
benchmark by 20%. In other words, the following expression evaluation
time goes from 1100ms to 850ms.

```
bin/lldb \
		--batch \
		-o "b CodeGenFunction::GenerateCode" \
		-o run \
		-o "expr Fn" \
		-- \
		clang++ -c -g test.cpp -o /dev/null &> output
```

(Note, these numbers are considering the usage of IDX_parent)


  Commit: 9f3854a01f878831c229db0eb5078fa9d56e60ff
      https://github.com/llvm/llvm-project/commit/9f3854a01f878831c229db0eb5078fa9d56e60ff
  Author: michaelrj-google <71531609+michaelrj-google at users.noreply.github.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M libc/config/linux/aarch64/entrypoints.txt
    M libc/config/linux/aarch64/headers.txt
    M libc/config/linux/api.td
    M libc/config/linux/arm/entrypoints.txt
    M libc/config/linux/arm/headers.txt
    M libc/config/linux/riscv/entrypoints.txt
    M libc/config/linux/riscv/headers.txt
    M libc/config/linux/syscall_numbers.h.inc
    M libc/config/linux/x86_64/entrypoints.txt
    M libc/config/linux/x86_64/headers.txt
    M libc/include/CMakeLists.txt
    M libc/include/llvm-libc-types/CMakeLists.txt
    A libc/include/llvm-libc-types/struct_epoll_data.h
    A libc/include/llvm-libc-types/struct_epoll_event.h
    A libc/include/sys/epoll.h.def
    M libc/spec/gnu_ext.td
    M libc/spec/linux.td
    M libc/src/sys/CMakeLists.txt
    A libc/src/sys/epoll/CMakeLists.txt
    A libc/src/sys/epoll/epoll_pwait.h
    A libc/src/sys/epoll/epoll_pwait2.h
    A libc/src/sys/epoll/epoll_wait.h
    A libc/src/sys/epoll/linux/CMakeLists.txt
    A libc/src/sys/epoll/linux/epoll_pwait.cpp
    A libc/src/sys/epoll/linux/epoll_pwait2.cpp
    A libc/src/sys/epoll/linux/epoll_wait.cpp
    M libc/test/src/sys/CMakeLists.txt
    A libc/test/src/sys/epoll/CMakeLists.txt
    A libc/test/src/sys/epoll/linux/CMakeLists.txt
    A libc/test/src/sys/epoll/linux/epoll_pwait2_test.cpp
    A libc/test/src/sys/epoll/linux/epoll_pwait_test.cpp
    A libc/test/src/sys/epoll/linux/epoll_wait_test.cpp
    M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
    A utils/bazel/llvm-project-overlay/libc/test/src/sys/epoll/BUILD.bazel

  Log Message:
  -----------
  [reland][libc] add epoll_wait functions (#79635)

The epoll_wait functions are syscall wrappers that were requested by
upstream users. This patch adds them, as well as their header and types.

The tests are currently incomplete since they require epoll_create to
properly test epoll_wait. That will be added in a followup patch since
this one is already very large.


  Commit: 30155fc0ef4fbdce2d79434aaae8d58b2fabb20a
      https://github.com/llvm/llvm-project/commit/30155fc0ef4fbdce2d79434aaae8d58b2fabb20a
  Author: Tianlan Zhou <bobby825 at 126.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/AST/ExprConstant.cpp
    M clang/lib/CodeGen/CGExpr.cpp
    M clang/lib/Sema/SemaChecking.cpp
    M clang/lib/Sema/SemaOverload.cpp
    A clang/test/AST/ast-dump-static-operators.cpp
    M clang/test/CodeGenCXX/cxx2b-static-call-operator.cpp
    M clang/test/CodeGenCXX/cxx2b-static-subscript-operator.cpp
    A clang/test/SemaCXX/cxx2b-static-operator.cpp

  Log Message:
  -----------
  [clang] static operators should evaluate object argument (#68485)

### Description

clang don't evaluate the object argument of `static operator()` and
`static operator[]` currently, for example:

```cpp
#include <iostream>

struct Foo {
    static int operator()(int x, int y) {
        std::cout << "Foo::operator()" << std::endl;
        return x + y;
    }
    static int operator[](int x, int y) {
        std::cout << "Foo::operator[]" << std::endl;
        return x + y;
    }
};
Foo getFoo() {
    std::cout << "getFoo()" << std::endl;
    return {};
}
int main() {
    std::cout << getFoo()(1, 2) << std::endl;
    std::cout << getFoo()[1, 2] << std::endl;
}
```

`getFoo()` is expected to be called, but clang don't call it currently
(17.0.2). This PR fixes this issue.

Fixes #67976.

### Walkthrough

- **clang/lib/Sema/SemaOverload.cpp**
- **`Sema::CreateOverloadedArraySubscriptExpr` &
`Sema::BuildCallToObjectOfClassType`**
Previously clang generate `CallExpr` for static operators, ignoring the
object argument. In this PR `CXXOperatorCallExpr` is generated for
static operators instead, with the object argument as the first
argument.
  - **`TryObjectArgumentInitialization`**
`const` / `volatile` objects are allowed for static methods, so that we
can call static operators on them.
- **clang/lib/CodeGen/CGExpr.cpp**
  - **`CodeGenFunction::EmitCall`**
CodeGen changes for `CXXOperatorCallExpr` with static operators: emit
and ignore the object argument first, then emit the operator call.
- **clang/lib/AST/ExprConstant.cpp**
  - **`‎ExprEvaluatorBase::handleCallExpr‎`**
Evaluation of static operators in constexpr also need some small changes
to work, so that the arguments won't be out of position.
- **clang/lib/Sema/SemaChecking.cpp**
  - **`Sema::CheckFunctionCall`**
Code for argument checking also need to be modify, or it will fail the
test `clang/test/SemaCXX/overloaded-operator-decl.cpp`.

### Tests

- **Added:**
    - **clang/test/AST/ast-dump-static-operators.cpp**
      Verify the AST generated for static operators.
    - **clang/test/SemaCXX/cxx2b-static-operator.cpp**
Static operators should be able to be called on const / volatile
objects.
- **Modified:**
    - **clang/test/CodeGenCXX/cxx2b-static-call-operator.cpp**
    - **clang/test/CodeGenCXX/cxx2b-static-subscript-operator.cpp**
      Matching the new CodeGen.

### Documentation

- **clang/docs/ReleaseNotes.rst**
  Update release notes.

---------

Co-authored-by: Shafik Yaghmour <shafik at users.noreply.github.com>
Co-authored-by: cor3ntin <corentinjabot at gmail.com>
Co-authored-by: Aaron Ballman <aaron at aaronballman.com>


  Commit: 7ff2dc3b49eee49edf9a2c2c7051d643c38e21b1
      https://github.com/llvm/llvm-project/commit/7ff2dc3b49eee49edf9a2c2c7051d643c38e21b1
  Author: Nathan Lanza <nathanlanza at gmail.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M llvm/tools/llvm-profgen/ProfiledBinary.cpp

  Log Message:
  -----------
  [profgen] Use a 64bit integer for &'ing the loadable address (#79930)

For the linux kernel, the loadable segments start at 0xffff... and thus
the 32 bit integer here was truncating all the meaningful bits. Grow it
to 64 bits.


  Commit: dcc37e7970cf7012af78c5ebf5d4788cefb968a2
      https://github.com/llvm/llvm-project/commit/dcc37e7970cf7012af78c5ebf5d4788cefb968a2
  Author: Pil Eghoff <70582385+pileghoff at users.noreply.github.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/Sema/SemaChecking.cpp
    M clang/test/C/C2x/n3042.c
    M clang/test/Sema/warn-int-in-bool-context.c

  Log Message:
  -----------
  [Sema] Fix c23 not checking CheckBoolLikeConversion (#79588)

Fixes issue #79435 

Checks for implicit conversion into boolean was previously triggered by
`CheckBoolLikeConversion` for C.
When `bool` as a keyword was introduced in C23,
`CheckBoolLikeConversion` would no longer trigger when using `-std=c23`,
but since logical operators and conditional statements still operate on
scalar values, the checks for implicit conversion into bool were never
triggered.

This fix changes `CheckBoolLikeConversion` to not return early for C23,
even though it has support for bools.


  Commit: 7dc7fc08430b824ca16d3b22542ba73bc4d17881
      https://github.com/llvm/llvm-project/commit/7dc7fc08430b824ca16d3b22542ba73bc4d17881
  Author: Piyou Chen <piyou.chen at sifive.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M clang/test/Driver/riscv-arch.c
    M llvm/lib/Support/RISCVISAInfo.cpp
    M llvm/unittests/Support/RISCVISAInfoTest.cpp

  Log Message:
  -----------
  Recommit "[RISCV] Relax march string order constraint (#78120)"

With std::move added to fix build bot failure.

Original commit message:

Follow
https://github.com/riscv-non-isa/riscv-toolchain-conventions/pull/14 by
dropping the order requirement of `-march`.

1. single-letter extension can be arbitrary order
    - march=rv32iamdf
2. single-letter extension and multi-letter extension can be mixed
    - march=rv32i_zihintntl_m_a_f_d_svinval
3. multi-letter extension need seperate the following extension by
underscore, otherwise it will be intreprete as one extension.
    - march=rv32i_zbam -> i,zbam
    - march=rv32i_zba_m -> i,zba,m


  Commit: 2e165009b7d1f97337cb4b0f31f6d484d8cf96d9
      https://github.com/llvm/llvm-project/commit/2e165009b7d1f97337cb4b0f31f6d484d8cf96d9
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

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

  Log Message:
  -----------
  [RISCV] Use Twine concatentation for error messages in RISCVISAInfo. (#79956)

This avoids converting StringRef to std::string to const char*.


  Commit: 5f6640e268b5e6ead22983ba9e2074e3bbf0612b
      https://github.com/llvm/llvm-project/commit/5f6640e268b5e6ead22983ba9e2074e3bbf0612b
  Author: Saiyedul Islam <Saiyedul.Islam at amd.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M openmp/libomptarget/src/OpenMP/API.cpp

  Log Message:
  -----------
  [OpenMP52][LIBOMPTARGET] Do not throw error in omp_get_mapped_ptr for the host (#80038)

OpenMP spec 5.2 specifies return value to be the host ptr
in case of device_num being same as omp_get_initial_device().


  Commit: 285bc69846e76af805cd106ea3ea538a12f5c9b6
      https://github.com/llvm/llvm-project/commit/285bc69846e76af805cd106ea3ea538a12f5c9b6
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    A llvm/test/Transforms/SLPVectorizer/SystemZ/minbitwidth-trunc.ll

  Log Message:
  -----------
  [SLP]Fix PR80027: Fix costs processing for minbitwidth types.

Need to switch the types, the destination is first in getCastInstrCost
function.


  Commit: 3477bcf4b94395e2c0ed77a139e54240cfe4f27d
      https://github.com/llvm/llvm-project/commit/3477bcf4b94395e2c0ed77a139e54240cfe4f27d
  Author: Guray Ozen <guray.ozen at gmail.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/NVGPU/IR/NVGPU.td
    A mlir/test/Dialect/NVGPU/canonicalization.mlir

  Log Message:
  -----------
  [mlir][nvgpu] Mark TMA descriptor as MemWriteAt in `tma.async.store` (#79427)


  Commit: 201eb2b5775cf193c97c60a5eb790003a1e6bedb
      https://github.com/llvm/llvm-project/commit/201eb2b5775cf193c97c60a5eb790003a1e6bedb
  Author: Aaron Ballman <aaron at aaronballman.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/AST/ExprConstant.cpp
    M clang/lib/CodeGen/CGExpr.cpp
    M clang/lib/Sema/SemaChecking.cpp
    M clang/lib/Sema/SemaOverload.cpp
    R clang/test/AST/ast-dump-static-operators.cpp
    M clang/test/CodeGenCXX/cxx2b-static-call-operator.cpp
    M clang/test/CodeGenCXX/cxx2b-static-subscript-operator.cpp
    R clang/test/SemaCXX/cxx2b-static-operator.cpp

  Log Message:
  -----------
  Revert "[clang] static operators should evaluate object argument (#68485)"

This reverts commit 30155fc0ef4fbdce2d79434aaae8d58b2fabb20a.

It seems to have broken some tests in clangd:
http://45.33.8.238/linux/129484/step_9.txt


  Commit: e1ddc3331210957cec2569cef79021fa69363ab1
      https://github.com/llvm/llvm-project/commit/e1ddc3331210957cec2569cef79021fa69363ab1
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M libcxx/include/__thread/support.h
    M libcxx/include/__thread/support/c11.h
    M libcxx/include/__thread/support/pthread.h
    M libcxx/include/__thread/support/windows.h

  Log Message:
  -----------
  [libc++] Move __libcpp_timespec_t into namespace std (#80004)

It was previously defined outside of namespace std for apparently no
good reason.


  Commit: 97d72839301e6fd005fb258322b96bd46086daa1
      https://github.com/llvm/llvm-project/commit/97d72839301e6fd005fb258322b96bd46086daa1
  Author: Cyndy Ishida <cyndy_ishida at apple.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M llvm/include/llvm/TextAPI/Symbol.h

  Log Message:
  -----------
  [TextAPI] Fix -Wdocumentation error, NFC


  Commit: f2a78e68eee53646327f71c475c7f18a28b7f576
      https://github.com/llvm/llvm-project/commit/f2a78e68eee53646327f71c475c7f18a28b7f576
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M clang/docs/HIPSupport.rst
    M clang/lib/Basic/Targets/AMDGPU.cpp
    M clang/test/CodeGenOpenCL/builtins-amdgcn-wave64.cl
    M clang/test/Preprocessor/predefined-arch-macros.c

  Log Message:
  -----------
  [AMDGPU] Do not emit arch dependent macros with unspecified cpu (#80035)

Summary:
Currently, the AMDGPU toolchain accepts not passing `-mcpu` as a means
to create a sort of "generic" IR. The resulting IR will not contain any
target dependent attributes and can then be inserted into another
program via `-mlink-builtin-bitcode` to inherit its attributes.

However, there are a handful of macros that can leak incorrect
information when compiling for an unspecified architecture. Currently,
things like the wavefront size will default to 64, which is actually
variable. We should not expose these macros unless it is known.


  Commit: 5470ea4e36d47ed09595517854f0fa07ca91e16f
      https://github.com/llvm/llvm-project/commit/5470ea4e36d47ed09595517854f0fa07ca91e16f
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M libc/src/__support/GPU/amdgpu/utils.h
    M libc/src/__support/GPU/generic/utils.h
    M libc/src/__support/GPU/nvptx/utils.h
    M libc/src/__support/RPC/rpc.h
    M libc/utils/gpu/server/rpc_server.h

  Log Message:
  -----------
  [libc] Change the starting port index to use the SMID (#79200)

Summary:
The RPC interface uses several ports to provide parallel access. Right
now we begin the search at the beginning, which heavily contests the
early ports. Using the SMID allows us to stagger the starting index
based off of the cluster identifier that is executing the current warp.
Multiple warps can share an SM, but it will guaruntee that the
contention for the low indices is lower.

This also increases the maximum port size to around 4096, this is
because 512 isn't enough to cover the full hardare parallelism needed to
guarantee this doesdn't deadlock.


  Commit: 626fe71fa5ed79cbd41b7b29582560d7adb1220e
      https://github.com/llvm/llvm-project/commit/626fe71fa5ed79cbd41b7b29582560d7adb1220e
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M clang/test/Preprocessor/predefined-arch-macros.c

  Log Message:
  -----------
  [Clang] Fix test failing on systems without ROCm installed

Summary:
Forgot to specify `-nogpulib` which makes this test look for ROCm.


  Commit: 85a847fd1d639a0e7d5319b17e994ea157be6046
      https://github.com/llvm/llvm-project/commit/85a847fd1d639a0e7d5319b17e994ea157be6046
  Author: Konstantin Varlamov <varconsteq at gmail.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M libcxx/test/libcxx/atomics/atomics.align/align.pass.cpp
    M libcxx/test/libcxx/atomics/atomics.types.generic/atomics.types.float/lockfree.pass.cpp
    M libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/assign.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/atomics/atomics.types.generic/atomics.types.float/ctor.pass.cpp
    M libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/exchange.pass.cpp
    M libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/fetch_add.pass.cpp
    M libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/fetch_sub.pass.cpp
    M libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/load.pass.cpp
    M libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/lockfree.pass.cpp
    M libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/notify_all.pass.cpp
    M libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/notify_one.pass.cpp
    M libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/operator.float.pass.cpp
    M libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/operator.minus_equals.pass.cpp
    M libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/operator.plus_equals.pass.cpp
    M libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/store.pass.cpp
    M libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/wait.pass.cpp
    M libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_strong.pass.cpp
    M libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_strong_explicit.pass.cpp
    M libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_weak.pass.cpp
    M libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_weak_explicit.pass.cpp
    M libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_exchange.pass.cpp
    M libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_exchange_explicit.pass.cpp
    M libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_init.pass.cpp
    M libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_is_lock_free.pass.cpp
    M libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_load.pass.cpp
    M libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_load_explicit.pass.cpp
    M libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_store.pass.cpp
    M libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_store_explicit.pass.cpp
    M libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.wait/atomic_notify_all.pass.cpp
    M libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.wait/atomic_notify_one.pass.cpp
    M libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.wait/atomic_wait.pass.cpp
    M libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.wait/atomic_wait_explicit.pass.cpp
    M libcxx/test/support/atomic_helpers.h
    M libcxx/utils/libcxx/test/features.py

  Log Message:
  -----------
  [libc++] Simplify features for detecting atomics' support. (#75553)

`non-lockfree-atomics` is very similar to `has-64-bit-atomics`; to
simplify, we can have uniform features for atomic types of
increasing sizes (`has-128-bit-atomics`, `has-256-bit-atomics`, etc.).

`is-lockfree-runtime-function` feature was a workaround for the partial
support for large atomic types on older versions of macOS (see
https://reviews.llvm.org/D91911). While we still support macOS 10.14,
conceptually it's simpler to check for support for all the atomic
functionality inside the `has-*-atomics` features, and the workaround is
no longer worth the maintenance cost.


  Commit: 6fecfbc7b62f54bd633e83c22630d7c2a3e5741e
      https://github.com/llvm/llvm-project/commit/6fecfbc7b62f54bd633e83c22630d7c2a3e5741e
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M clang/lib/Basic/Targets/AMDGPU.cpp

  Log Message:
  -----------
  [AMDGPU] Correctly exclude the HIP host from arch macros

Summary:
This logic was wrong and accidentally appling to OpenCL.


  Commit: 733b86d3ff8087f1e267c23eb315bb16e3c6c953
      https://github.com/llvm/llvm-project/commit/733b86d3ff8087f1e267c23eb315bb16e3c6c953
  Author: Chelsea Cassanova <chelsea_cassanova at apple.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M lldb/include/lldb/Core/DebuggerEvents.h
    M lldb/include/lldb/Core/Progress.h
    M lldb/source/Core/DebuggerEvents.cpp
    M lldb/source/Core/Progress.cpp

  Log Message:
  -----------
  [lldb][progress] Correctly check total for deterministic progress (#79912)

The `total` parameter for the constructor for Progress was changed to a
std::optional in https://github.com/llvm/llvm-project/pull/77547. It was originally set to 1 to indicate non-determinisitic progress, but this commit changes this. First, `UINT64_MAX` will again be used for non-deterministic progress, and `Progress` now has a static variable set to this value so that we can use this instead of a magic number. 

The member variable `m_total` could be changed to a std::optional as
well, but this means that the `ProgressEventData::GetTotal()` (which is
used for the public API) would
either need to return a std::optional value or it would return some
specific integer to represent non-deterministic progress if `m_total` is
std::nullopt.


  Commit: 1d3300d5027c95c84b335f6adfca7e49cae45bb2
      https://github.com/llvm/llvm-project/commit/1d3300d5027c95c84b335f6adfca7e49cae45bb2
  Author: Peiming Liu <36770114+PeimingLiu at users.noreply.github.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M mlir/lib/Dialect/SparseTensor/Transforms/Utils/SparseTensorLevel.cpp
    M mlir/lib/Dialect/SparseTensor/Transforms/Utils/SparseTensorLevel.h

  Log Message:
  -----------
  [mlir][sparse] use shared value storage between wrapped iterator and the wrapper. (#80046)


  Commit: 235f1e74fe240e414718c64d05bafc01d34c32cb
      https://github.com/llvm/llvm-project/commit/235f1e74fe240e414718c64d05bafc01d34c32cb
  Author: Jinsong Ji <jinsong.ji at intel.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M clang/include/clang/Basic/Builtins.td

  Log Message:
  -----------
  [Clang] Fix typo in __fprintf_chk Prototype (#80012)

An extra int was copied.


  Commit: 30b9140c148923e31a6dbcb2202ef3908481bb29
      https://github.com/llvm/llvm-project/commit/30b9140c148923e31a6dbcb2202ef3908481bb29
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M llvm/test/MC/RISCV/rv32zbb-only-valid.s
    M llvm/test/MC/RISCV/rv32zbb-valid.s
    M llvm/test/MC/RISCV/rv64zbb-valid.s
    M llvm/test/MC/RISCV/rv64zbkb-valid.s

  Log Message:
  -----------
  [RISCV] Minor cleanup to rori MC layer testing. NFC

rv32zbb-valid.s tests rv64 and rv32. rv32zbb-only-valid.s only tests rv32.

The rori tests in rv32zbb-only-valid.s produce the same result for rv32 and
rv64 so its better to test them in rv32zbb-valid.s.

Remove a now redundant test case from rv64zbb-valid.s.
Add a missing rori test with imm >= 32 to rv64zbkb-valid.s.


  Commit: 6a21e00e397648141ed36aae4bd958efa09908f3
      https://github.com/llvm/llvm-project/commit/6a21e00e397648141ed36aae4bd958efa09908f3
  Author: Shilei Tian <i at tianshilei.me>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
    A llvm/test/MC/AMDGPU/writelane_m0.s
    A llvm/test/MachineVerifier/writelane_m0.mir

  Log Message:
  -----------
  [AMDGPU][AsmParser] Allow `v_writelane_b32` to use SGPR and M0 as source operands at the same time (#78827)

Currently the asm parser takes `v_writelane_b32 v1, s13, m0` as illegal
instruction for pre-gfx11 because it uses two constant buses while the
hardware
can only allow one. However, based on the comment of
`AMDGPUInstructionSelector::selectWritelane`,
it is allowed to have M0 as lane selector and a SGPR used as SRC0
because the
lane selector doesn't count as a use of constant bus. In fact, codegen
can already
generate this form, but this inconsistency is not exposed because the
validation
of constant bus limitation only happens when paring an assembly but we
don't have
a test case when both SGPR and M0 used as source operands for the
instruction.


  Commit: d8b61d716899736c7f0444d1b18b8e1a536c3472
      https://github.com/llvm/llvm-project/commit/d8b61d716899736c7f0444d1b18b8e1a536c3472
  Author: Aiden Grossman <agrossman154 at yahoo.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M llvm/docs/CommandGuide/llvm-exegesis.rst
    A llvm/test/tools/llvm-exegesis/X86/latency/middle-half.s
    M llvm/tools/llvm-exegesis/lib/BenchmarkResult.h
    M llvm/tools/llvm-exegesis/lib/CMakeLists.txt
    A llvm/tools/llvm-exegesis/lib/ResultAggregator.cpp
    A llvm/tools/llvm-exegesis/lib/ResultAggregator.h
    M llvm/tools/llvm-exegesis/lib/SnippetRepetitor.cpp
    M llvm/tools/llvm-exegesis/llvm-exegesis.cpp
    M llvm/unittests/tools/llvm-exegesis/CMakeLists.txt
    A llvm/unittests/tools/llvm-exegesis/ResultAggregatorTest.cpp

  Log Message:
  -----------
  [llvm-exegesis] Add middle half repetition mode (#77020)

This patch adds two new repetition modes to llvm-exegesis, particularly
loop and duplicate repetition modes of what I am terming the middle half
repetition mode. The middle half repetition mode essentially runs each
measurement twice, one with twice the number of iterations of the other.
These two measurements are then agregated by taking their difference.
This subtracts away any setup/overhead that is unrelated to the code in
the snippet, providing more accurate results.

Using this mode on a couple toy examples, I am able to get exact
(integer) throughput values on all of them in contrast to the default
duplicate/loop repetition modes which show a little bit of noise on the
snippet value.


  Commit: 58e8c072aa4ebb11dfab13ed00fa8d61e408516c
      https://github.com/llvm/llvm-project/commit/58e8c072aa4ebb11dfab13ed00fa8d61e408516c
  Author: Shilei Tian <i at tianshilei.me>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M llvm/test/MachineVerifier/writelane_m0.mir

  Log Message:
  -----------
  [FIX] Require AMDGPU target in test case `llvm/test/MachineVerifier/writelane_m0.mir`


  Commit: 0dd0cbd324ad13dd7b91edf69a2ca66a6a208c80
      https://github.com/llvm/llvm-project/commit/0dd0cbd324ad13dd7b91edf69a2ca66a6a208c80
  Author: erichkeane <ekeane at nvidia.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M clang/include/clang/Basic/OpenACCKinds.h
    M clang/lib/Parse/ParseOpenACC.cpp
    A clang/test/ParserOpenACC/parse-wait-clause.c

  Log Message:
  -----------
  [OpenACC] Implement 'wait' clause parsing.

The 'wait' clause is parsed the same way as the 'wait' construct, so
this jsut differs to that function.


  Commit: 66ef6900f9f3aa4fab9f6e36af04f775948cdf9d
      https://github.com/llvm/llvm-project/commit/66ef6900f9f3aa4fab9f6e36af04f775948cdf9d
  Author: erichkeane <ekeane at nvidia.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M clang/lib/Parse/ParseOpenACC.cpp
    M clang/test/ParserOpenACC/parse-clauses.c

  Log Message:
  -----------
  [OpenACC] Better recover during clause parsing

Previously we gave up immediately and just escaped.  Instead, skip to
the next close paren and see if we can continue parsing the next clause
instead.


  Commit: aa88a09fbc6428fa3c74e2027b0f329d89c332bd
      https://github.com/llvm/llvm-project/commit/aa88a09fbc6428fa3c74e2027b0f329d89c332bd
  Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M llvm/utils/gn/secondary/llvm/tools/llvm-exegesis/lib/BUILD.gn
    M llvm/utils/gn/secondary/llvm/unittests/tools/llvm-exegesis/BUILD.gn

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


  Commit: a385c379f8694f42d1efb88bb8c5a53fccb6a664
      https://github.com/llvm/llvm-project/commit/a385c379f8694f42d1efb88bb8c5a53fccb6a664
  Author: Yitzhak Mandelbaum <ymand at users.noreply.github.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M clang/lib/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.cpp

  Log Message:
  -----------
  [clang][dataflow] Drop block-relative cap on worklist iterations. (#80033)

As per the FIXME, this cap never really served its purpose. This patch
simplifies to a single, caller-specified, absolute cap.


  Commit: 576c4dfa067fa767818a0d80c7072a64c221384e
      https://github.com/llvm/llvm-project/commit/576c4dfa067fa767818a0d80c7072a64c221384e
  Author: michaelrj-google <71531609+michaelrj-google at users.noreply.github.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

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

  Log Message:
  -----------
  [libc] disable epoll_pwait2 due to breakage (#80051)

It appears that sys_epoll_pwait2 isn't always available, so we need to
add some sort of condition to enable it. This patch disables it until
that happens.


  Commit: 2c5a0d392592982bb9c73cbc10c64390b9045873
      https://github.com/llvm/llvm-project/commit/2c5a0d392592982bb9c73cbc10c64390b9045873
  Author: Yitzhak Mandelbaum <ymand at users.noreply.github.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M clang/include/clang/Analysis/Analyses/PostOrderCFGView.h
    M clang/unittests/Analysis/CFGTest.cpp
    M clang/unittests/Analysis/FlowSensitive/LoggerTest.cpp

  Log Message:
  -----------
  [clang][CFG] Change child order in Reverse Post Order (RPO) iteration. (#80030)

The CFG orders the blocks of loop bodies before those of loop successors
(both numerically, and in the successor order of the loop condition
block). So, RPO necessarily reverses that order, placing the loop
successor *before* the loop body. For many analyses, particularly those
that converge to a fixpoint, this results in potentially significant
extra work, because loop successors will necessarily need to be
reconsidered once the algorithm has reached a fixpoint on the loop body.

This definition of CFG graph traits reverses the order of children, so
that loop bodies will come first in an RPO. Then, the algorithm can
fully evaluate the loop and only then consider successor blocks.


  Commit: 0fa4463e93dca275ee80fd85120e33ccc9f22c5e
      https://github.com/llvm/llvm-project/commit/0fa4463e93dca275ee80fd85120e33ccc9f22c5e
  Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M flang/lib/Semantics/resolve-directives.cpp
    M flang/test/Semantics/OpenACC/acc-loop.f90

  Log Message:
  -----------
  [flang][openacc] Check trip count invariance with other IVs (#79906)

2.9.1 The trip count for all loops associated with the collapse clause
must be computable and invariant in all the loops.

This patch checks that iteration range of loops part of a collapse nest
does not depend on outer loops induction variables.

The check is also applied to combined construct with a loop.


  Commit: d9423398ea129e229b20ba42dfe4326e620129b5
      https://github.com/llvm/llvm-project/commit/d9423398ea129e229b20ba42dfe4326e620129b5
  Author: Valentin Clement <clementval at gmail.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M flang/lib/Semantics/resolve-directives.cpp
    M flang/test/Semantics/OpenACC/acc-loop.f90

  Log Message:
  -----------
  Revert "[flang][openacc] Check trip count invariance with other IVs (#79906)"

This reverts commit 0fa4463e93dca275ee80fd85120e33ccc9f22c5e.

Breaks buildbot https://lab.llvm.org/buildbot/#/builders/268/builds/7155


  Commit: 9b91c54d9bd3227a49e146c055fb0165567f7f8d
      https://github.com/llvm/llvm-project/commit/9b91c54d9bd3227a49e146c055fb0165567f7f8d
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
    M llvm/test/Instrumentation/MemorySanitizer/msan_asm_conservative.ll

  Log Message:
  -----------
  [msan] Unpoison indirect outputs for userspace using memset for large operands (#79924)

Modify #77393 to clear shadow memory using `llvm.memset.*` when the size
is large, similar to `shouldUseBZeroPlusStoresToInitialize` in clang for
`-ftrivial-auto-var-init=`. The intrinsic, if lowered to libcall, will
use the msan interceptor.

The instruction selector lowers a `StoreInst` to multiple stores, not
utilizing `memset`. When the size is large (e.g.
`store { [100 x i32] } zeroinitializer, ptr %12, align 1`), the
generated code will be long (and `CodeGenPrepare::optimizeInst` will
even crash for a huge size).

```
// Test stack size
template <class T>
void DoNotOptimize(const T& var) { // deprecated by https://github.com/google/benchmark/pull/1493
  asm volatile("" : "+m"(const_cast<T&>(var)));
}

int main() {
  using LargeArray = std::array<int, 1000000>;
  auto large_stack = []() { DoNotOptimize(LargeArray()); };
  /////// CodeGenPrepare::optimizeInst triggers an assertion failure when creating an integer type with a bit width>2**23
  large_stack();
}
```


  Commit: 648560062af8deb4e6478130deb1dd8fa62929a8
      https://github.com/llvm/llvm-project/commit/648560062af8deb4e6478130deb1dd8fa62929a8
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M compiler-rt/lib/dfsan/dfsan_custom.cpp
    M compiler-rt/lib/dfsan/done_abilist.txt
    M compiler-rt/lib/dfsan/libc_ubuntu1404_abilist.txt

  Log Message:
  -----------
  [dfsan] Wrap glibc 2.38 __isoc23_* functions (#79958)

Fix #79283: `test/dfsan/custom.cpp` has undefined symbol linker errors
on glibc 2.38 due to lack of wrappers for `__isoc23_strtol` and
`__isoc23_scanf` family functions.

Implement these wrappers as aliases to existing wrappers, similar to
https://reviews.llvm.org/D158943 for other sanitizers.

`strtol` in a user program, whether or not `_ISOC2X_SOURCE` is defined,
uses the C23 semantics (`strtol("0b1", 0, 0)` => 1), when
`libclang_rt.dfsan.a` is built on glibc 2.38+.


  Commit: a356e6ccada87d6bfc4513fba4b1a682305e094a
      https://github.com/llvm/llvm-project/commit/a356e6ccada87d6bfc4513fba4b1a682305e094a
  Author: PiJoules <6019989+PiJoules at users.noreply.github.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M llvm/include/llvm/CodeGen/TargetLowering.h
    M llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
    M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
    A llvm/test/CodeGen/Thumb/smul_fix.ll
    A llvm/test/CodeGen/Thumb/smul_fix_sat.ll
    A llvm/test/CodeGen/Thumb/umul_fix.ll
    A llvm/test/CodeGen/Thumb/umul_fix_sat.ll

  Log Message:
  -----------
  [SelectionDAG] Expand fixed point multiplication into libcall (#79352)

32-bit ARMv6 with thumb doesn't support MULHS/MUL_LOHI as legal/custom
nodes during expansion which will cause fixed point multiplication of
_Accum types to fail with fixed point arithmetic. Prior to this, we just
happen to use fixed point multiplication on platforms that happen to
support these MULHS/MUL_LOHI.

This patch attempts to check if the multiplication can be done via
libcalls, which are provided by the arm runtime. These libcall attempts
are made elsewhere, so this patch refactors that libcall logic into its
own functions and the fixed point expansion calls and reuses that logic.


  Commit: 404af14f92b8b7318ab3d34bd65d800c0bde1e10
      https://github.com/llvm/llvm-project/commit/404af14f92b8b7318ab3d34bd65d800c0bde1e10
  Author: Maksim Levental <maksim.levental at gmail.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M mlir/include/mlir-c/BuiltinTypes.h
    M mlir/lib/Bindings/Python/IRTypes.cpp
    M mlir/lib/CAPI/IR/BuiltinTypes.cpp
    M mlir/python/mlir/dialects/_ods_common.py
    M mlir/python/mlir/dialects/memref.py
    M mlir/python/mlir/dialects/transform/structured.py
    M mlir/test/python/dialects/memref.py

  Log Message:
  -----------
  [mlir][python] enable memref.subview (#79393)


  Commit: 24923214e7845acc0e2f56f13e08ee519eba8303
      https://github.com/llvm/llvm-project/commit/24923214e7845acc0e2f56f13e08ee519eba8303
  Author: Schrodinger ZHU Yifan <yifanzhu at rochester.edu>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M libc/config/linux/aarch64/entrypoints.txt
    M libc/config/linux/riscv/entrypoints.txt
    M libc/config/linux/x86_64/entrypoints.txt
    M libc/spec/linux.td
    M libc/spec/posix.td
    M libc/src/sys/mman/CMakeLists.txt
    M libc/src/sys/mman/linux/CMakeLists.txt
    A libc/src/sys/mman/linux/mlock.cpp
    A libc/src/sys/mman/linux/mlock2.cpp
    A libc/src/sys/mman/linux/mlockall.cpp
    A libc/src/sys/mman/linux/munlock.cpp
    A libc/src/sys/mman/linux/munlockall.cpp
    A libc/src/sys/mman/mlock.h
    A libc/src/sys/mman/mlock2.h
    A libc/src/sys/mman/mlockall.h
    A libc/src/sys/mman/munlock.h
    A libc/src/sys/mman/munlockall.h
    M libc/test/src/sys/mman/linux/CMakeLists.txt
    M libc/test/src/sys/mman/linux/mincore_test.cpp
    A libc/test/src/sys/mman/linux/mlock_test.cpp

  Log Message:
  -----------
  [libc] implement mlock/mlock2/munlock/mlockall/munlockall (#79645)

fixes #79336

Co-authored-by: Sirui Mu <msrlancern at gmail.com>


  Commit: 75ea78ab677f8357aa14fd4c0aff5d551a4ff8aa
      https://github.com/llvm/llvm-project/commit/75ea78ab677f8357aa14fd4c0aff5d551a4ff8aa
  Author: Felipe de Azevedo Piovezan <fpiovezan at apple.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M llvm/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h
    M llvm/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp

  Log Message:
  -----------
  [DebugNames] Compare TableEntry names more efficiently (#79759)

TableEntry names are pointers into the string table section, and
accessing their
length requires a search for `\0`. However, 99% of the time we only need
to
compare the name against some other other, and such a comparison will
fail as
early as the first character.

This commit adds a method to the interface of TableEntry so that such a
comparison can be done without extracting the full name. It saves 10% in
the
time (1250ms -> 1100 ms) to evaluate the following expression.

```
lldb \
  --batch \
  -o "b CodeGenFunction::GenerateCode" \
  -o run \
  -o "expr Fn" \
  -- \
  clang++ -c -g test.cpp -o /dev/null &> output
```


  Commit: e5cebec521a7cf86ff21dedb8a2c96b3f8331c9d
      https://github.com/llvm/llvm-project/commit/e5cebec521a7cf86ff21dedb8a2c96b3f8331c9d
  Author: jkorous-apple <32549412+jkorous-apple at users.noreply.github.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M clang/lib/Analysis/UnsafeBufferUsage.cpp

  Log Message:
  -----------
  [-Wunsafe-buffer-usage] Fix AST matcher of UUCAddAssignGadget (#79392)

We are not interested in nonpointers being added to.


  Commit: bb770f0df53eee91a803b2829808d82279f7b577
      https://github.com/llvm/llvm-project/commit/bb770f0df53eee91a803b2829808d82279f7b577
  Author: yronglin <yronglin777 at gmail.com>
  Date:   2024-01-31 (Wed, 31 Jan 2024)

  Changed paths:
    M clang/include/clang/AST/TextNodeDumper.h
    M clang/lib/AST/TextNodeDumper.cpp
    M clang/test/AST/ast-dump-for-range-lifetime.cpp
    M clang/test/Import/cxx-default-init-expr/test.cpp

  Log Message:
  -----------
  [Clang] Dump the rewritten sub-expressions in CXXDefaultArgExpr/CXXDefaultInitExpr (#80001)

This patch dump the rewritten sub-expressions in `CXXDefaultArgExpr` and
`CXXDefaultInitExpr`.
This machinery is useful for checking whether the materialized
temporaries is lifetime-extended in the sub-AST of `CXXDefaultArgExpr`
(`CXXDefaultInitExpr` has not been lifetime extendend now).

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


  Commit: 2f490f924647aa0724bab49cb390d4423fc9fc03
      https://github.com/llvm/llvm-project/commit/2f490f924647aa0724bab49cb390d4423fc9fc03
  Author: Valentin Clement <clementval at gmail.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M flang/lib/Semantics/resolve-directives.cpp
    M flang/test/Semantics/OpenACC/acc-loop.f90

  Log Message:
  -----------
  [flang][openacc] Check trip count invariance with other IVs (#79906)

2.9.1 The trip count for all loops associated with the collapse clause must be
computable and invariant in all the loops.

This patch checks that loops part of a collapse nest does not depends on outer
loops induction variables.

The check is also applied to combined construct with a loop.


  Commit: 16c15b5f84836d81084e9987701ca011da5a864f
      https://github.com/llvm/llvm-project/commit/16c15b5f84836d81084e9987701ca011da5a864f
  Author: Nick Desaulniers <nickdesaulniers at users.noreply.github.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M libc/test/src/sys/mman/linux/mlock_test.cpp

  Log Message:
  -----------
  [libc] disable mlockall w/ MCL_ONFAULT (#80075)

I suspect this is a bug in linux 4.19, as the test passes as written on
my
linux 6.5 machine.

Let's revisit this after the build bots are upgraded.

Link: #80073


  Commit: 7847e44594aa932c0a5f5d2cd15940d2a815c059
      https://github.com/llvm/llvm-project/commit/7847e44594aa932c0a5f5d2cd15940d2a815c059
  Author: Michael Spencer <bigcheesegs at gmail.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M clang/include/clang/Basic/DiagnosticSerializationKinds.td
    M clang/include/clang/Basic/FileManager.h
    M clang/include/clang/Lex/HeaderSearch.h
    M clang/include/clang/Lex/HeaderSearchOptions.h
    M clang/include/clang/Serialization/ASTBitCodes.h
    M clang/include/clang/Serialization/ASTReader.h
    M clang/include/clang/Serialization/ASTWriter.h
    M clang/include/clang/Serialization/ModuleFile.h
    M clang/include/clang/Tooling/DependencyScanning/DependencyScanningFilesystem.h
    M clang/include/clang/Tooling/DependencyScanning/DependencyScanningService.h
    M clang/lib/Basic/FileManager.cpp
    M clang/lib/Frontend/CompilerInvocation.cpp
    M clang/lib/Lex/HeaderSearch.cpp
    M clang/lib/Serialization/ASTReader.cpp
    M clang/lib/Serialization/ASTWriter.cpp
    M clang/lib/Tooling/DependencyScanning/DependencyScanningFilesystem.cpp
    M clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp
    M clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp
    A clang/test/ClangScanDeps/optimize-vfs-edgecases.m
    A clang/test/ClangScanDeps/optimize-vfs-leak.m
    A clang/test/ClangScanDeps/optimize-vfs-pch.m
    A clang/test/ClangScanDeps/optimize-vfs.m
    M clang/tools/clang-scan-deps/ClangScanDeps.cpp
    M llvm/include/llvm/Support/VirtualFileSystem.h
    M llvm/lib/Support/VirtualFileSystem.cpp
    M llvm/unittests/Support/VirtualFileSystemTest.cpp

  Log Message:
  -----------
  [clang][DependencyScanner] Remove unused -ivfsoverlay files (#73734)

`-ivfsoverlay` files are unused when building most modules. Enable
removing them by,
* adding a way to visit the filesystem tree with extensible RTTI to
  access each `RedirectingFileSystem`.
* Adding tracking to `RedirectingFileSystem` to record when it
  actually redirects a file access.
* Storing this information in each PCM.

Usage tracking is only enabled when iterating over the source manager
and affecting modulemaps. Here each path is stated to cause an access.
During scanning these stats all hit the cache.


  Commit: 86cd2fbdfe67d70a7fe061ed5d3a644f50f070f5
      https://github.com/llvm/llvm-project/commit/86cd2fbdfe67d70a7fe061ed5d3a644f50f070f5
  Author: jkorous-apple <32549412+jkorous-apple at users.noreply.github.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M clang/test/SemaCXX/warn-unsafe-buffer-usage-fixits-pointer-access.cpp

  Log Message:
  -----------
  [-Wunsafe-buffer-usage][NFC] Add testcase for non-unsafe pointer (#80076)

This adds a missing CHECK-NOT directive for an existing test case.


  Commit: c8c3fe70ae09a48408ee15a256e52a4624e0291c
      https://github.com/llvm/llvm-project/commit/c8c3fe70ae09a48408ee15a256e52a4624e0291c
  Author: Jacek Caban <jacek at codeweavers.com>
  Date:   2024-01-31 (Wed, 31 Jan 2024)

  Changed paths:
    M lld/COFF/DLL.cpp
    M lld/test/COFF/imports.test
    M lld/test/COFF/pdb-publics-import.test

  Log Message:
  -----------
  [LLD][COFF] Align import directory chunk. (#80014)

The loader can usually handle an unaligned import dir chunk, but It's not
optimal and it's not what MSVC link.exe does.

Windows refuses to load ARM64X binaries with unaligned import directory.
aarch64 and arm64ec imports are shared in such binaries as much as
possible. As long as they use the same set of functions from given import
directory, both the directory and import addresses chunk are just shared.
When used set of functions differs, ARM64X dynamic relocations are used
to modify import dir to point to different names and import addresses for
its EC view. I suspect that the loader expects some alignment on ARM64X
dynamic relocation offset and may not be the case when relocated import
dir is not aligned.


  Commit: 8b38970811086b09752a5909d0c17de4d0cd04c3
      https://github.com/llvm/llvm-project/commit/8b38970811086b09752a5909d0c17de4d0cd04c3
  Author: Katherine Rasmussen <krasmussen at lbl.gov>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M flang/docs/Intrinsics.md
    M flang/lib/Evaluate/intrinsics.cpp
    M flang/lib/Semantics/check-call.cpp
    A flang/test/Semantics/image_index01.f90
    A flang/test/Semantics/image_index02.f90

  Log Message:
  -----------
  [flang] Add image_index to list of intrinsics and add tests (#79519)

Add image_index to the list of intrinsic functions and add additional
check on its args in check-call.cpp. Add two semantics tests for
image_index.


  Commit: 4effff21fb2f3462e06fcbd7812562f4771b0487
      https://github.com/llvm/llvm-project/commit/4effff21fb2f3462e06fcbd7812562f4771b0487
  Author: Kai Sasaki <lewuathe at gmail.com>
  Date:   2024-01-31 (Wed, 31 Jan 2024)

  Changed paths:
    M mlir/lib/Conversion/ComplexToStandard/ComplexToStandard.cpp
    M mlir/test/Conversion/ComplexToStandard/convert-to-standard.mlir
    M mlir/test/Conversion/ComplexToStandard/full-conversion.mlir
    M mlir/test/Integration/Dialect/Complex/CPU/correctness.mlir

  Log Message:
  -----------
  [mlir][complex] Prevent underflow in complex.abs (#79786)

The previous PR was not correct on the way to handle the negative value.
It is necessary to take the absolute value of the given real (or
imaginary) part to be multiplied with the sqrt part.

See: https://github.com/llvm/llvm-project/pull/76316


  Commit: b21a2f9365b6c5fd464a97be5dfe7085742870ef
      https://github.com/llvm/llvm-project/commit/b21a2f9365b6c5fd464a97be5dfe7085742870ef
  Author: Michael Spencer <bigcheesegs at gmail.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp
    A clang/test/ClangScanDeps/missing-vfs.m

  Log Message:
  -----------
  [clang][scan-deps] Stop scanning if any scanning setup emits an error.

Without this scanning will continue and later hit an assert that the
number of `RedirectingFileSystem`s matches the number of -ivfsoverlay
arguments.


  Commit: c806d8c7e948f01405be4ea344d883f066f8ae59
      https://github.com/llvm/llvm-project/commit/c806d8c7e948f01405be4ea344d883f066f8ae59
  Author: rmarker <37921131+rmarker at users.noreply.github.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M clang/docs/tools/dump_format_style.py

  Log Message:
  -----------
  [clang-format] Explicitly open DOC_FILE with utf-8 in dump_format_style.py (#79805)

The dump_format_style.py script generates the clang-format style options
documentation.
There was an issue where the script could include spurious characters in
the output when run in windows. It appears that it wasn't defaulting to
the correct encoding when reading the input.
This has been addressed by explicitly setting the encoding when opening
the file.


  Commit: b91bba89edfb25d011e1f2366cda5dec605c87f6
      https://github.com/llvm/llvm-project/commit/b91bba89edfb25d011e1f2366cda5dec605c87f6
  Author: Jakub Kuderski <jakub at nod-labs.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M mlir/include/mlir/Conversion/MemRefToSPIRV/MemRefToSPIRV.h
    M mlir/lib/Conversion/GPUToSPIRV/GPUToSPIRVPass.cpp
    M mlir/lib/Conversion/MemRefToSPIRV/MapMemRefStorageClassPass.cpp

  Log Message:
  -----------
  [mlir][spirv] Use `AttrTypeReplacer` in map-memref-storage-class. NFC. (#80055)

Keep the conversion target to allow for checking if the op is legal.


  Commit: d783933bc910ac005e18928d22b6c10c4fe8d6f6
      https://github.com/llvm/llvm-project/commit/d783933bc910ac005e18928d22b6c10c4fe8d6f6
  Author: Yaraslau <yaraslau.tamashevich at gmail.com>
  Date:   2024-01-31 (Wed, 31 Jan 2024)

  Changed paths:
    A clang/test/ClangScanDeps/empty.cpp
    M clang/tools/clang-scan-deps/ClangScanDeps.cpp

  Log Message:
  -----------
  [clang-scan-deps] Fix check for empty `Compilation` (#75545)

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

Instead of checking for `nullptr` we need to ensure that `JobList` is
not empty to proceed


  Commit: 2abcbbd96ad731b05fae970a0abb23cda784dddd
      https://github.com/llvm/llvm-project/commit/2abcbbd96ad731b05fae970a0abb23cda784dddd
  Author: Maksim Panchenko <maks at fb.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M bolt/include/bolt/Core/BinaryContext.h
    M bolt/include/bolt/Utils/CommandLineOpts.h
    M bolt/lib/Profile/DataAggregator.cpp
    M bolt/lib/Rewrite/LinuxKernelRewriter.cpp
    M bolt/lib/Rewrite/RewriteInstance.cpp
    M bolt/lib/Utils/CommandLineOpts.cpp
    M bolt/test/X86/linux-orc.s

  Log Message:
  -----------
  [BOLT] Detect Linux kernel based on ELF program headers (#80086)

Check if program header addresses fall into the kernel space to detect a
Linux kernel binary on x86-64.

Delete opts::LinuxKernelMode and use BinaryContext::IsLinuxKernel
instead.


  Commit: b4d832c77dcba4136132559a5183883cf064389d
      https://github.com/llvm/llvm-project/commit/b4d832c77dcba4136132559a5183883cf064389d
  Author: Carl Peto <carl.peto at me.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M clang/include/clang/Sema/Sema.h
    M clang/lib/Parse/ParseExpr.cpp
    M clang/lib/Parse/ParseObjc.cpp
    M clang/lib/Sema/SemaDecl.cpp

  Log Message:
  -----------
  [clang] Improved isSimpleTypeSpecifier (#79037)

- Sema::isSimpleTypeSpecifier return true for _Bool in c99 (currently
returns false for _Bool, regardless of C dialect). (Fixes #72203)
- replace the logic with a check for simple types and a proper check for
a valid keyword in the appropriate dialect

Co-authored-by: Carl Peto <CPeto at becrypt.com>


  Commit: c761b4a5e4cc003a2c850898e1dc67d2637cfb0c
      https://github.com/llvm/llvm-project/commit/c761b4a5e4cc003a2c850898e1dc67d2637cfb0c
  Author: Billy Laws <blaws05 at gmail.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/test/CodeGen/AArch64/arm64ec-varargs.ll
    M llvm/test/CodeGen/AArch64/vararg-tallcall.ll

  Log Message:
  -----------
  [AArch64] Fix variadic tail-calls on ARM64EC (#79774)

ARM64EC varargs calls expect that x4 = sp at entry, special handling is
needed to ensure this with tail calls since they occur after the
epilogue and the x4 write happens before.

I tried going through AArch64MachineFrameLowering for this, hoping to
avoid creating the dummy object but this was the best I could do since
the stack info that uses isn't populated at this stage,
CreateFixedObject also explicitly forbids 0 sized objects.


  Commit: 1a17f2beb9cd1f5bbaa64502ab5c02ff74c199a4
      https://github.com/llvm/llvm-project/commit/1a17f2beb9cd1f5bbaa64502ab5c02ff74c199a4
  Author: Congcong Cai <congcongcai0907 at 163.com>
  Date:   2024-01-31 (Wed, 31 Jan 2024)

  Changed paths:
    M llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
    A llvm/test/CodeGen/WebAssembly/disable-feature.ll

  Log Message:
  -----------
  [WebAssembly] avoid to use explicit disabled feature

In `CoalesceFeaturesAndStripAtomics`, feature string is converted to FeatureBitset and back to feature string. It will lose information about explicit diasbled features.


  Commit: c43fda3efcbf5b16e611473cf03c88381237f50f
      https://github.com/llvm/llvm-project/commit/c43fda3efcbf5b16e611473cf03c88381237f50f
  Author: Congcong Cai <congcongcai0907 at 163.com>
  Date:   2024-01-31 (Wed, 31 Jan 2024)

  Changed paths:
    M llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
    R llvm/test/CodeGen/WebAssembly/disable-feature.ll

  Log Message:
  -----------
  Revert "[WebAssembly] avoid to use explicit disabled feature"

This reverts commit 1a17f2beb9cd1f5bbaa64502ab5c02ff74c199a4.


  Commit: 847dc39fd80130a8f3c82d1b3711fd30d070b54e
      https://github.com/llvm/llvm-project/commit/847dc39fd80130a8f3c82d1b3711fd30d070b54e
  Author: Congcong Cai <congcongcai0907 at 163.com>
  Date:   2024-01-31 (Wed, 31 Jan 2024)

  Changed paths:
    M llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
    A llvm/test/CodeGen/WebAssembly/disable-feature.ll

  Log Message:
  -----------
  [WebAssembly] avoid to use explicit disabled feature

In `CoalesceFeaturesAndStripAtomics`, feature string is converted to FeatureBitset and back to feature string. It will lose information about explicit diasbled features.


Compare: https://github.com/llvm/llvm-project/compare/0f80f5e362fb...847dc39fd801


More information about the All-commits mailing list