[all-commits] [llvm/llvm-project] fd82b5: [LV] Support recieps without underlying instr in c...

Mehdi Amini via All-commits all-commits at lists.llvm.org
Fri Nov 3 13:41:02 PDT 2023


  Branch: refs/heads/users/joker-eph/refactor-moduletoobject-to-offer-more-flexibility-to-subclass-nfc
  Home:   https://github.com/llvm/llvm-project
  Commit: fd82b5b2876b3885b0590ba4538c316fa0e33cf7
      https://github.com/llvm/llvm-project/commit/fd82b5b2876b3885b0590ba4538c316fa0e33cf7
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/test/Transforms/LoopVectorize/X86/drop-poison-generating-flags.ll

  Log Message:
  -----------
  [LV] Support recieps without underlying instr in collectPoisonGenRec.

Support recipes without underlying instruction in
collectPoisonGeneratingRecipes by directly trying to dyn_cast_or_null
the underlying value.

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


  Commit: 8fd43fddd3b1c1dba9d59a10268a6cd71c2e3504
      https://github.com/llvm/llvm-project/commit/8fd43fddd3b1c1dba9d59a10268a6cd71c2e3504
  Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M mlir/include/mlir/Dialect/ArmSME/IR/ArmSMEIntrinsicOps.td

  Log Message:
  -----------
  [mlir][ArmSME] Provide descriptions and summaries for intrinsic types (#71057)

Follow on for some types missed in #70920. This also replaces the
LDSTPredicate with SVEPredicate (as they are equivalent), and adds a
missing rank == 1 checks to the SVE vector types.

A FIXME is also added to point out an issue in the MOPVector type
constraint.


  Commit: 85f79233286c78a1b79d01ca0677230658732b35
      https://github.com/llvm/llvm-project/commit/85f79233286c78a1b79d01ca0677230658732b35
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M llvm/lib/IR/ConstantFold.cpp

  Log Message:
  -----------
  [ConstantFold] Remove unnecessary cast of zero gep fold (NFCI)

Zero GEPs will be optimized away entirely, except in the cases
which this transform also excludes (splat, inrange).


  Commit: c5a1d0ae6a69c7ba39a4386c30e49da0d2a3664e
      https://github.com/llvm/llvm-project/commit/c5a1d0ae6a69c7ba39a4386c30e49da0d2a3664e
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M llvm/lib/IR/ConstantFold.cpp

  Log Message:
  -----------
  Revert "[ConstantFold] Remove unnecessary BitCastConstantVector() (NFCI)"

This reverts commit 2182561b7ba675ca87356c02474eecb6ecfaa23f.

The all-ones special case in this case isn't redundant. Will redo
the change while preserving it.


  Commit: e21532418528f0cbcec4c811ce0ea41e8b3075fe
      https://github.com/llvm/llvm-project/commit/e21532418528f0cbcec4c811ce0ea41e8b3075fe
  Author: Tom Eccles <tom.eccles at arm.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

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

  Log Message:
  -----------
  [flang][StackArrays] skip analysis of very large functions (#71047)

The stack arrays pass uses data flow analysis to determine whether heap
allocations are freed on all paths out of the function.

`interp_domain_em_part2` in spec2017 wrf generates over 120k operations,
including almost 5k fir.if operations and over 200 fir.do_loop
operations, all in the same function. The MLIR data flow analysis
framework cannot provide reasonable performance for such cases because
there is a combinatorial explosion in the number of control flow paths
through the function, all of which must be checked to determine if the
heap allocations will be freed.

This patch skips the stack arrays pass for ridiculously large functions
(defined as having more than 1000 fir.allocmem operations). This
threshold is configurable at runtime with a command line argument.

With this patch, compiling this file is more than 80% faster.


  Commit: 3f1a86bc27a587d3c56f966e51c2513a3a4f44b5
      https://github.com/llvm/llvm-project/commit/3f1a86bc27a587d3c56f966e51c2513a3a4f44b5
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M llvm/test/Assembler/ConstantExprFold.ll

  Log Message:
  -----------
  [ConstantFold] Add tests for vector bitcast of all ones (NFC)


  Commit: 4be8a7bda55c5b50832b773b204f75cd26c5979d
      https://github.com/llvm/llvm-project/commit/4be8a7bda55c5b50832b773b204f75cd26c5979d
  Author: David Spickett <david.spickett at linaro.org>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M lldb/test/API/functionalities/vtable/TestVTableValue.py

  Log Message:
  -----------
  [lldb] Fix TestVTableValue on 32 bit

7fbd427f5ebea4a4ebf25747758851875bb7e173 added a test that overwrites
a vtable entry but it uses and expects a 64 bit value. Add the 32 bit
equivalents.


  Commit: d49a893cdbea0dd6f8fde7dc9f321b2e0d169bba
      https://github.com/llvm/llvm-project/commit/d49a893cdbea0dd6f8fde7dc9f321b2e0d169bba
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M llvm/lib/IR/ConstantFold.cpp

  Log Message:
  -----------
  Reapply [ConstantFold] Remove unnecessary BitCastConstantVector() (NFCI)

ConstantFoldCastInstruction() already has generic code to perform
lane-wise casts for vectors. There is no need to repeate it
specifically for bitcasts.

However, we do need to keep the special case for vectors of -1,
which is not handled elsewhere.


  Commit: 01689175251f2624fb9d077666657aa21e3f7850
      https://github.com/llvm/llvm-project/commit/01689175251f2624fb9d077666657aa21e3f7850
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M llvm/lib/IR/ConstantFold.cpp

  Log Message:
  -----------
  [ConstantFold] Remove redundant handling for casts of null (NFCI)

ConstantFoldCastInstruction() has generic handling for null values
at the top. No need to repeat it for inttoptr and ptrtoint.


  Commit: 18cc980ca30e5f013542518439da020f45ebe497
      https://github.com/llvm/llvm-project/commit/18cc980ca30e5f013542518439da020f45ebe497
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M llvm/lib/IR/ConstantFold.cpp

  Log Message:
  -----------
  [ConstantFold] Remove unnecessarily complicated evaluateFCmpRelation() (NFCI)

The only thing this actually handles is if the operands are the
same, in which case ueq is returned.

Given that nearly all FP constant expressions have already been
removed, I think it's safe to say that we aren't going to extend
this code in a way that makes use of the more general structure.


  Commit: c1a9eabf56db21392587f76b4abaa30a01f3643a
      https://github.com/llvm/llvm-project/commit/c1a9eabf56db21392587f76b4abaa30a01f3643a
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M llvm/lib/IR/ConstantFold.cpp

  Log Message:
  -----------
  [ConstantFold] Don't mention irrelevant opcodes (NFCI)

This is folding an icmp, so fptrunc, fpext, uitofp, sitofp cannot
appear here at all. Also drop the explicit checks for trunc, fptoui,
fptosi, which can appear, but are just some random subset of opcodes
that are not handled by this code.


  Commit: fe206578f2e9b864ec6a703974a0e2a9001bb11b
      https://github.com/llvm/llvm-project/commit/fe206578f2e9b864ec6a703974a0e2a9001bb11b
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M llvm/lib/IR/ConstantFold.cpp

  Log Message:
  -----------
  [ConstantFold] Remove handling for comparison of bitcasted global (NFCI)

The bitcast will be folded away in this case, no need to handle it
explicitly.


  Commit: a7176f8a25fc6930ee7fd0cfcde4d9a96010a5a8
      https://github.com/llvm/llvm-project/commit/a7176f8a25fc6930ee7fd0cfcde4d9a96010a5a8
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M llvm/lib/IR/ConstantFold.cpp

  Log Message:
  -----------
  [ConstantFold] Remove handling for icmp of bitcast

This only handles the case where the bitcast result is an integer
or pointer, and the input is not FP. This means that the input
can only be a vector. However, converting a comparison of the
whole vector into an element-wise comparison is generally not
correct.

I assume that this code was originally intended to handle the case
where a pointer bitcast is compared to a null pointer, which is
no longer relevant with opaque pointers.

Given the complete lack of test coverage, and the risk of
miscompiles if this code actually did something, I'm opting to
remove it entirely.


  Commit: 1111ef025762d9b7ecc3cafc576083987ae63fe6
      https://github.com/llvm/llvm-project/commit/1111ef025762d9b7ecc3cafc576083987ae63fe6
  Author: Neale Ferguson <neale at sinenomine.net>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M openmp/README.rst
    M openmp/libomptarget/plugins-nextgen/CMakeLists.txt
    A openmp/libomptarget/plugins-nextgen/s390x/CMakeLists.txt
    M openmp/runtime/CMakeLists.txt
    M openmp/runtime/cmake/LibompGetArchitecture.cmake
    M openmp/runtime/cmake/LibompMicroTests.cmake
    M openmp/runtime/cmake/LibompUtils.cmake
    M openmp/runtime/cmake/config-ix.cmake
    M openmp/runtime/src/kmp_affinity.cpp
    M openmp/runtime/src/kmp_affinity.h
    M openmp/runtime/src/kmp_config.h.cmake
    M openmp/runtime/src/kmp_os.h
    M openmp/runtime/src/kmp_platform.h
    M openmp/runtime/src/kmp_runtime.cpp
    M openmp/runtime/src/kmp_tasking.cpp
    M openmp/runtime/src/thirdparty/ittnotify/ittnotify_config.h
    M openmp/runtime/src/z_Linux_asm.S
    M openmp/runtime/src/z_Linux_util.cpp
    M openmp/runtime/test/lit.cfg
    M openmp/runtime/test/ompt/callback.h
    M openmp/runtime/tools/lib/Platform.pm
    M openmp/runtime/tools/lib/Uname.pm

  Log Message:
  -----------
  Add openmp support to System z (#66081)

* openmp/README.rst
  - Add s390x to those platforms supported

* openmp/libomptarget/plugins-nextgen/CMakeLists.txt
  - Add s390x subdirectory

* openmp/libomptarget/plugins-nextgen/s390x/CMakeLists.txt
  - Add s390x definitions

* openmp/runtime/CMakeLists.txt
  - Add s390x to those platforms supported

* openmp/runtime/cmake/LibompGetArchitecture.cmake
  - Define s390x ARCHITECTURE

* openmp/runtime/cmake/LibompMicroTests.cmake
  - Add dependencies for System z (aka s390x)

* openmp/runtime/cmake/LibompUtils.cmake
  - Add S390X to the mix

* openmp/runtime/cmake/config-ix.cmake
  - Add s390x as a supported LIPOMP_ARCH

* openmp/runtime/src/kmp_affinity.h
  - Define __NR_sched_[get|set]addinity for s390x

* openmp/runtime/src/kmp_config.h.cmake
  - Define CACHE_LINE for s390x

* openmp/runtime/src/kmp_os.h
  - Add KMP_ARCH_S390X to support checks

* openmp/runtime/src/kmp_platform.h
  - Define KMP_ARCH_S390X

* openmp/runtime/src/kmp_runtime.cpp
  - Generate code when KMP_ARCH_S390X is defined

* openmp/runtime/src/kmp_tasking.cpp
  - Generate code when KMP_ARCH_S390X is defined

* openmp/runtime/src/thirdparty/ittnotify/ittnotify_config.h
  - Define ITT_ARCH_S390X

* openmp/runtime/src/z_Linux_asm.S
  - Instantiate __kmp_invoke_microtask for s390x

* openmp/runtime/src/z_Linux_util.cpp
  - Generate code when KMP_ARCH_S390X is defined

* openmp/runtime/test/ompt/callback.h
  - Define print_possible_return_addresses for s390x

* openmp/runtime/tools/lib/Platform.pm
  - Return s390x as platform and host architecture

* openmp/runtime/tools/lib/Uname.pm
  - Set hardware platform value for s390x


  Commit: 9b3bb7a066c407f908cb1896abfa4fb4a8ea6588
      https://github.com/llvm/llvm-project/commit/9b3bb7a066c407f908cb1896abfa4fb4a8ea6588
  Author: Momchil Velikov <momchil.velikov at arm.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_reinterpret-bfloat.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_reinterpret.c
    M clang/utils/TableGen/SveEmitter.cpp

  Log Message:
  -----------
  [AArch64] Implement reinterpret builtins for SVE vector tuples (#69598)

This patch adds reinterpret builtins as proposed here:
https://github.com/ARM-software/acle/pull/275.

The builtins take the form:

    sv<dst>x<N>_t svreinterpret_<dst>_<src>_x<N>(sv<src>x<N>_t op)

where
- <src> and <dst> designate the source and the destination type,
respectively, all pairs chosen from {s8, u8, s16, u8, s32, u32, s64,
u64, bf16, f16, f32, f64}
  - <N> designated the number of tuple elements, 2, 3 or 4

A short (overloaded) for is also provided, where the destination type is
explicitly designated and the source type is deduced from the parameter
type. These take the form

    sv<dst>x<N>_t svreinterpret_<dst>(sv<src>x<N>_t op)

For example:

    svuin16x2_t svreinterpret_u16_s32_x2(svint32x2_t op);
    svuin16x2_t svreinterpret_u16(svint32x2_t op);


  Commit: 97a238e863fdf1f1a54e4bb609e130a6456a4f61
      https://github.com/llvm/llvm-project/commit/97a238e863fdf1f1a54e4bb609e130a6456a4f61
  Author: Christian Ulmann <christianulmann at gmail.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M mlir/include/mlir/Conversion/LLVMCommon/LoweringOptions.h
    M mlir/include/mlir/Conversion/LLVMCommon/TypeConverter.h
    M mlir/include/mlir/Dialect/LLVMIR/FunctionCallUtils.h
    M mlir/lib/Conversion/FuncToLLVM/FuncToLLVM.cpp
    M mlir/lib/Conversion/GPUCommon/GPUOpsLowering.cpp
    M mlir/lib/Conversion/LLVMCommon/MemRefBuilder.cpp
    M mlir/lib/Conversion/LLVMCommon/Pattern.cpp
    M mlir/lib/Conversion/LLVMCommon/PrintCallHelper.cpp
    M mlir/lib/Conversion/LLVMCommon/TypeConverter.cpp
    M mlir/lib/Conversion/MemRefToLLVM/AllocLikeConversion.cpp
    M mlir/lib/Conversion/SPIRVToLLVM/SPIRVToLLVM.cpp
    M mlir/lib/Dialect/LLVMIR/IR/FunctionCallUtils.cpp
    M mlir/lib/Dialect/NVGPU/TransformOps/NVGPUTransformOps.cpp

  Log Message:
  -----------
  [MLIR][LLVM] Remove typed pointer conversion utils (#71169)

This commit removes the no longer required type pointer helpers from the
LLVM dialect conversion utils. Typed pointers have been deprecated for a
while now and it's planned to soon remove them from the LLVM dialect.

Related PSA:
https://discourse.llvm.org/t/psa-removal-of-typed-pointers-from-the-llvm-dialect/74502


  Commit: 51485019fb34a48dc6226bfa42d7449091e3f03d
      https://github.com/llvm/llvm-project/commit/51485019fb34a48dc6226bfa42d7449091e3f03d
  Author: Paul Walker <paul.walker at arm.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp

  Log Message:
  -----------
  [NFC][LLVM][SVE] Refactor predicate register ASM constraint parsing to use std::optional.


  Commit: 236197a065879c900a450e5236adbb76578006cb
      https://github.com/llvm/llvm-project/commit/236197a065879c900a450e5236adbb76578006cb
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M llvm/lib/IR/ConstantFold.cpp

  Log Message:
  -----------
  [ConstantFold] Simplify evaluateICmpRelation() implementation (NFCI)

Clarify that most of this only works on pointer icmps, and remove
the unnecessary isSigned parameter, as well as the ConstantInt
fallback.

Also perform complexity sorting upfront, so we don't need to deal
with swapped cases in the individual branches.


  Commit: 05a47706476f3cd467aa1c4347fdfb71bcbc1252
      https://github.com/llvm/llvm-project/commit/05a47706476f3cd467aa1c4347fdfb71bcbc1252
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M llvm/lib/IR/ConstantFold.cpp
    M llvm/test/Transforms/InstSimplify/ConstProp/icmp-global.ll

  Log Message:
  -----------
  [ConstantFold] Fix incorrect type assumptions

If a pointer isn't a constant expression, global or block address,
it's not guaranteed to be a null pointer. It can also be a no_cfi
or dso_local_equivalent constant.


  Commit: 17970df6dca3cf46f0264e94f40eb4ef93ef521f
      https://github.com/llvm/llvm-project/commit/17970df6dca3cf46f0264e94f40eb4ef93ef521f
  Author: Paul Walker <paul.walker at arm.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
    M llvm/test/CodeGen/AArch64/complex-deinterleaving-reductions-scalable.ll
    M llvm/test/CodeGen/AArch64/named-vector-shuffles-sve.ll
    M llvm/test/CodeGen/AArch64/sve-extract-fixed-vector.ll
    M llvm/test/CodeGen/AArch64/sve-gep.ll
    M llvm/test/CodeGen/AArch64/sve-insert-element.ll
    M llvm/test/CodeGen/AArch64/sve-insert-vector.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-loads-nf.ll
    M llvm/test/CodeGen/AArch64/sve-pred-contiguous-ldst-addressing-mode-reg-imm.ll
    M llvm/test/CodeGen/AArch64/sve-pred-non-temporal-ldst-addressing-mode-reg-imm.ll
    M llvm/test/CodeGen/AArch64/sve-split-extract-elt.ll
    M llvm/test/CodeGen/AArch64/sve-split-insert-elt.ll
    M llvm/test/CodeGen/AArch64/sve-vl-arith.ll

  Log Message:
  -----------
  [LLVM][SVE] Move ADDVL isel patterns under UseScalarIncVL feature flag. (#71173)

Also removes a duplicate pattern.


  Commit: 9915ebaa5e596358b9b8b6753723b613b780b09c
      https://github.com/llvm/llvm-project/commit/9915ebaa5e596358b9b8b6753723b613b780b09c
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M llvm/lib/IR/ConstantFold.cpp

  Log Message:
  -----------
  [ConstantFold] Remove redundant constantFoldCompareGlobalToNull() fold (NFCI)

This is already handled in evaluateICmpRelation().


  Commit: e299a4287018769b9dfdd1eea8609bb59423ae90
      https://github.com/llvm/llvm-project/commit/e299a4287018769b9dfdd1eea8609bb59423ae90
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M llvm/lib/IR/ConstantFold.cpp

  Log Message:
  -----------
  [ConstantFold] Remove redundant bitcast icmp handling (NFCI)

This code excludes vector/scalar and FP bitcasts. All other
integer/pointer bitcasts are no-op bitcasts and will be removed
entirely.


  Commit: 8efaf7a518fa3cf719cdeff3917b9fedf8f2cf19
      https://github.com/llvm/llvm-project/commit/8efaf7a518fa3cf719cdeff3917b9fedf8f2cf19
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M llvm/lib/IR/ConstantFold.cpp

  Log Message:
  -----------
  [ConstantFold] Remove redundant zero index gep fold (NFCI)

We already handle the more general case of zero index GEPs above,
so we don't need to also handle GEPs with null based and zero
indices. (Strictly speaking, this code could handle the special
case of an inrange gep with null base and zero indices, but that
has no practical relevance.)


  Commit: ab6bd9436adaf683abf790a49060560fe3eac3a3
      https://github.com/llvm/llvm-project/commit/ab6bd9436adaf683abf790a49060560fe3eac3a3
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M llvm/test/Transforms/ConstraintElimination/transfer-signed-facts-to-unsigned.ll
    M llvm/test/Transforms/PhaseOrdering/loop-access-checks.ll

  Log Message:
  -----------
  [ConstraintElim] Add tests for additional SGT->UGT transfer.

Test cases inspired by
https://github.com/llvm/llvm-project/issues/63126.


  Commit: fe300f35ca1a4ae06f3f76f3d8732f75e76a3c16
      https://github.com/llvm/llvm-project/commit/fe300f35ca1a4ae06f3f76f3d8732f75e76a3c16
  Author: Konstantin Varlamov <varconsteq at gmail.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    A libcxx/cmake/caches/Generic-hardened-mode-with-abi-breaks.cmake
    M libcxx/test/libcxx/containers/views/views.span/debug.iterator-indexing.pass.cpp
    M libcxx/test/libcxx/strings/string.view/string.view.iterators/debug.iterator-indexing.pass.cpp
    M libcxx/utils/ci/buildkite-pipeline.yml
    M libcxx/utils/ci/run-buildbot
    M libcxx/utils/libcxx/test/features.py

  Log Message:
  -----------
  [libc++][hardening] Add tests for the hardened mode with ABI breaks. (#71020)

Add a new test mode that enables the hardened mode in combination with
ABI-breaking changes (only bounded iterators currently) and reenable the
bounded iterator tests for `span` and `string_view`.


  Commit: 1061c0150b587c721aaddd8250d562976dbcd7d6
      https://github.com/llvm/llvm-project/commit/1061c0150b587c721aaddd8250d562976dbcd7d6
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M libcxx/test/std/diagnostics/syserr/syserr.errcat/syserr.errcat.objects/generic_category.pass.cpp
    M libcxx/test/std/diagnostics/syserr/syserr.errcat/syserr.errcat.objects/system_category.pass.cpp

  Log Message:
  -----------
  [libc++] Remove legacy feature suse-linux-enterprise-server-11 (#71103)

This Lit feature is not defined anywhere anymore and that platform is
not on our radar for support, so this is basically dead code.


  Commit: 6e4692c9ee8718eed19288f0e5b2d9d6655cb56d
      https://github.com/llvm/llvm-project/commit/6e4692c9ee8718eed19288f0e5b2d9d6655cb56d
  Author: Jessica Del <50999226+OutOfCache at users.noreply.github.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M llvm/include/llvm/IR/IntrinsicsAMDGPU.td
    M llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
    M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
    M llvm/lib/Target/AMDGPU/SOPInstructions.td
    A llvm/test/CodeGen/AMDGPU/llvm.amdgcn.wqm.ll

  Log Message:
  -----------
  [AMDGPU] - Add s_wqm intrinsics (#71048)

Add intrinsics to generate `s_wqm_b32` and `s_wqm_b64`.

Support VGPR arguments by inserting a `v_readfirstlane`.


  Commit: 03110ddeb2c21d1b500e7f6f6e70134e269738bc
      https://github.com/llvm/llvm-project/commit/03110ddeb2c21d1b500e7f6f6e70134e269738bc
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M llvm/include/llvm/IR/Operator.h
    M llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
    M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp

  Log Message:
  -----------
  [IR] Remove ZExtOperator (NFC)

Now that zext constant expressions are no longer supported,
ZExtInst should be used instead.


  Commit: 48be81e172911eb8cdae8a1ffd0166edfb2cfc04
      https://github.com/llvm/llvm-project/commit/48be81e172911eb8cdae8a1ffd0166edfb2cfc04
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M clang/include/clang/AST/DeclBase.h
    M clang/include/clang/Serialization/ASTReader.h
    M clang/include/clang/Serialization/ASTWriter.h
    M clang/lib/Serialization/ASTReaderDecl.cpp
    M clang/lib/Serialization/ASTWriter.cpp
    M clang/lib/Serialization/ASTWriterDecl.cpp
    M clang/test/Modules/decl-params-determinisim.m

  Log Message:
  -----------
  [NFC] [Serializer] Pack information in serializer (#69287)

Previously, the boolean values will occupy spaces that can contain
integers. It wastes the spaces especially if the boolean values are
serialized consecutively. The patch tries to pack such consecutive
boolean values (and enum values) so that we can save more spaces and so
the times.

Before the patch, we need 4.478s (in my machine) to build the std module
(https://libcxx.llvm.org/Modules.html) with 28712 bytes for size of the
BMI. After the patch, the time becomes to 4.374s and the size becomes to
27388 bytes for the size of the BMI.

This is intended to be a NFC patch.

This patch doesn't optimize all such cases. We can do it later after we
have consensus on this.


  Commit: ee9220c8e3fe3d738b0e84f706b789326d912937
      https://github.com/llvm/llvm-project/commit/ee9220c8e3fe3d738b0e84f706b789326d912937
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

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

  Log Message:
  -----------
  [PatternMatch] Don't try to match sext/zext const exprs (NFCI)


  Commit: 68fbc8eec38d2930b60e01ffb2cbf297eac658fb
      https://github.com/llvm/llvm-project/commit/68fbc8eec38d2930b60e01ffb2cbf297eac658fb
  Author: David Spickett <david.spickett at linaro.org>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M lldb/source/DataFormatters/StringPrinter.cpp
    M lldb/source/Expression/IRInterpreter.cpp
    M lldb/source/Host/common/PseudoTerminal.cpp
    M lldb/source/Host/posix/ConnectionFileDescriptorPosix.cpp
    M lldb/source/Host/posix/MainLoopPosix.cpp
    M lldb/source/Host/windows/MainLoopWindows.cpp
    M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV1.cpp
    M lldb/source/Plugins/ObjectFile/Breakpad/BreakpadRecords.cpp
    M lldb/source/Plugins/Process/FreeBSD/NativeProcessFreeBSD.cpp
    M lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
    M lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
    M lldb/source/Symbol/SymbolFile.cpp
    M lldb/source/Utility/Log.cpp
    M lldb/tools/lldb-dap/DAP.cpp

  Log Message:
  -----------
  [lldb][NFC] Use UNUSED_IF_ASSERT_DISABLED instead of (void) cast

Uses of (void) remain where they are for purposes other than an
assert variable.


  Commit: 5c3beb7b1e26d38b0933a28432dfbce4e00cf329
      https://github.com/llvm/llvm-project/commit/5c3beb7b1e26d38b0933a28432dfbce4e00cf329
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp
    M llvm/test/Transforms/MemCpyOpt/memcpy.ll

  Log Message:
  -----------
  [MemCpyOpt] Handle memcpy marked as memory(none)

Fixes #71183.


  Commit: a8ac6a986852fbf4befbcb056b7adcb197d90e26
      https://github.com/llvm/llvm-project/commit/a8ac6a986852fbf4befbcb056b7adcb197d90e26
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M llvm/lib/Analysis/ScalarEvolution.cpp
    M llvm/test/Analysis/ScalarEvolution/ptrtoint-constantexpr-loop.ll

  Log Message:
  -----------
  [SCEV] Remove newline after predicates in dump

update_analyze_test_checks.py will now insert check lines for
empty lines, which means that all the existing test coverage will
have a spurious change to check for the newline after "Predicates:".

I don't think we actually want to have that newline, so drop it
before it gets into more test coverage.


  Commit: 4ae416793037366bbffb19663521634fb855647c
      https://github.com/llvm/llvm-project/commit/4ae416793037366bbffb19663521634fb855647c
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    A llvm/test/Transforms/ConstraintElimination/reason-about-add-operands.ll

  Log Message:
  -----------
  [ConstraintElim] Add tests that require (UGE, Variable, 0) info.

Inspired by
https://discourse.llvm.org/t/why-does-llvm-not-perform-range-analysis-on-integer-values/74341
and https://github.com/llvm/llvm-project/issues/63490.


  Commit: f6ca0ed0385f57adf814439dfa7585a00284a144
      https://github.com/llvm/llvm-project/commit/f6ca0ed0385f57adf814439dfa7585a00284a144
  Author: Hassnaa Hamdi <hassnaa.hamdi at arm.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M llvm/include/llvm/TargetParser/AArch64TargetParser.h
    M llvm/lib/Target/AArch64/AArch64.td
    M llvm/lib/Target/AArch64/AArch64InstrInfo.td
    M llvm/lib/Target/AArch64/AArch64SMEInstrInfo.td
    M llvm/lib/Target/AArch64/AArch64SchedA64FX.td
    M llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
    M llvm/lib/Target/AArch64/SMEInstrFormats.td
    A llvm/test/MC/AArch64/FP8_SME2/dot-diagnostics.s
    A llvm/test/MC/AArch64/FP8_SME2/dot.s
    A llvm/test/MC/AArch64/FP8_SME2/mla-diagnostics.s
    A llvm/test/MC/AArch64/FP8_SME2/mla.s
    A llvm/test/MC/AArch64/FP8_SME2/mopa-diagnostics.s
    A llvm/test/MC/AArch64/FP8_SME2/mopa.s
    M llvm/test/MC/AArch64/SME2/fmlal-diagnostics.s
    M llvm/test/MC/AArch64/SME2/fvdot-diagnostics.s
    M llvm/unittests/TargetParser/TargetParserTest.cpp

  Log Message:
  -----------
  [llvm][AArch64][Assembly]: Add SME_F8F16 and SME_F8F32 Ass/Disass. (#70640)

This patch adds the feature flags of SME_F8F16 and SME_F8F32,
 and the assembly/disassembly for the following instructions of SME2:

  * SME:
    - FMLAL, FMLALL
    - FVDOT, FVDOTT
    - FVDOTB 
    - FMOPA
   
That is according to this documentation:
https://developer.arm.com/documentation/ddi0602/2023-09

Co-authored-by: Caroline Concatto <caroline.concatto at arm.com>


  Commit: 05a0d9441630ff417d6e4185b526478967d1fe15
      https://github.com/llvm/llvm-project/commit/05a0d9441630ff417d6e4185b526478967d1fe15
  Author: Ben Langmuir <blangmuir at apple.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    A compiler-rt/test/orc/TestCases/Darwin/arm64/objc-imageinfo.S
    A compiler-rt/test/orc/TestCases/Darwin/x86-64/objc-imageinfo.S
    M llvm/include/llvm/ExecutionEngine/Orc/MachOPlatform.h
    M llvm/lib/ExecutionEngine/Orc/MachOPlatform.cpp

  Log Message:
  -----------
  [orc][mach-o] Fix mixing objc and swift code in a single JITDylib (#69258)

The system linker merges __objc_imageinfo flags values to select a
compatible set of flags using the minimum swift version and only
erroring on incompatible ABIs. Match that behaviour in the orc macho
platform. One wrinkle is that the JIT can add new objects after the
dylib is running code. In that case we only check for known incompatible
flags and ignore the swift version. It's too late to change the flags at
that point and swift version is unlikely to change runtime behaviour in
practice.


  Commit: de88371d9d62eac598f8603b9a2aee6cbce4fe21
      https://github.com/llvm/llvm-project/commit/de88371d9d62eac598f8603b9a2aee6cbce4fe21
  Author: Paul Walker <paul.walker at arm.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/Basic/Targets/AArch64.cpp
    M clang/test/CodeGen/aarch64-inline-asm.c
    M llvm/docs/LangRef.rst
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    A llvm/test/CodeGen/AArch64/inlineasm-Uc-constraint.ll

  Log Message:
  -----------
  [LLVM][AArch64] Add ASM constraints for reduced GPR register ranges. (#70970)

[LLVM][AArch64] Add ASM constraints for reduced GPR register ranges.
    
The patch adds the follow ASM constraints:
  Uci => w8-w11/x8-x11
  Ucj => w12-w15/x12-x15
    
These constraints are required for SME load/store instructions
where a reduced set of GPRs are used to specify ZA array vectors.
    
NOTE: GCC has agreed to use the same constraint syntax.


  Commit: 51018d1a90542a407c78868e6be29a2492c18f5a
      https://github.com/llvm/llvm-project/commit/51018d1a90542a407c78868e6be29a2492c18f5a
  Author: Piotr Zegar <me at piotrzegar.pl>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M clang-tools-extra/clang-tidy/modernize/MakeSmartPtrCheck.cpp
    M clang-tools-extra/docs/ReleaseNotes.rst
    M clang-tools-extra/test/clang-tidy/checkers/modernize/Inputs/smart-ptr/shared_ptr.h

  Log Message:
  -----------
  [clang-tidy] Improve modernize-make-shared check (#70600)

Improved modernize-make-shared check to support
std::shared_ptr implementations that inherit the
reset method from a base class.
In GCC that class is called __shared_ptr.

Fixes #64481


  Commit: f6f769203dd3c4da410c9f8d4cc5108a9cb6640a
      https://github.com/llvm/llvm-project/commit/f6f769203dd3c4da410c9f8d4cc5108a9cb6640a
  Author: Philip Reames <preames at rivosinc.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M llvm/test/CodeGen/BPF/loop-exit-cond.ll
    M llvm/test/Transforms/HardwareLoops/ARM/fp-emulation.ll
    M llvm/test/Transforms/IRCE/variable-loop-bounds.ll

  Log Message:
  -----------
  [tests] Autogenerate a couple of tests

As usual, making it easier for an upcoming test delta to be seen.

Note that several of these are examples of extremely bad testing practice.
Checking internal debug output (for no real purpose), and checking the
result of a fully O2 + llc run instead of reducing the specific problematic
pass.


  Commit: 015c06ade023362ba7410e06618dea407fa07e5f
      https://github.com/llvm/llvm-project/commit/015c06ade023362ba7410e06618dea407fa07e5f
  Author: Philip Reames <preames at rivosinc.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M llvm/test/Analysis/ScalarEvolution/trip-count-negative-stride.ll
    M llvm/test/Transforms/IndVarSimplify/cycled_phis.ll

  Log Message:
  -----------
  Regenerate a couple scev/indvars tests [nfc]

Update to modern output to reduce spurious deltas in upcoming change.


  Commit: 1e39575a981088e8596461a3511cce3ec4c3b274
      https://github.com/llvm/llvm-project/commit/1e39575a981088e8596461a3511cce3ec4c3b274
  Author: Min-Yih Hsu <min.hsu at sifive.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
    M llvm/lib/Target/RISCV/RISCVInstrInfo.h
    A llvm/test/CodeGen/RISCV/branch-opt.ll

  Log Message:
  -----------
  [RISCV] CSE by swapping conditional branches (#71111)

DAGCombiner, as well as InstCombine, tend to canonicalize GE/LE into
GT/LT, namely:
```
X >= C --> X > (C - 1)
```
Which sometime generates off-by-one constants that could have been CSE'd
with surrounding constants.
Instead of changing such canonicalization, this patch tries to swap
those branch conditions post-isel, in the hope of resurfacing more
constant CSE opportunities. More specifically, it performs the following
optimization:

For two constants C0 and C1 from
```
li Y, C0
li Z, C1
```
To remove redundnat `li Y, C0`,
 1. if C1 = C0 + 1 we can turn: 
    (a) blt Y, X -> bge X, Z
    (b) bge Y, X -> blt X, Z
 2. if C1 = C0 - 1 we can turn: 
    (a) blt X, Y -> bge Z, X
    (b) bge X, Y -> blt Z, X

This optimization will be done by PeepholeOptimizer through
RISCVInstrInfo::optimizeCondBranch.


  Commit: a6c8e27b3a052913a15a13ee0d4ac466c5ab3f92
      https://github.com/llvm/llvm-project/commit/a6c8e27b3a052913a15a13ee0d4ac466c5ab3f92
  Author: Philip Reames <preames at rivosinc.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M llvm/lib/Transforms/Utils/SimplifyIndVar.cpp
    M llvm/test/Analysis/ScalarEvolution/guards.ll
    M llvm/test/Transforms/IndVarSimplify/X86/pr59615.ll
    M llvm/test/Transforms/IndVarSimplify/post-inc-range.ll
    M llvm/test/Transforms/LoopFlatten/widen-iv2.ll
    M llvm/test/Transforms/LoopFlatten/widen-iv3.ll

  Log Message:
  -----------
  [IndVars] Generate zext nneg when locally obvious

zext nneg was recently added to the IR in #67982.  This patch teaches
SimplifyIndVars to prefer zext nneg over *both* sext and plain zext,
when a local SCEV query indicates the source is non-negative.

The choice to prefer zext nneg over sext looks slightly aggressive
here, but probably isn't so much in practice.  For cases where we'd
"remember" the range fact, instcombine would convert the sext into
a zext nneg anyways.  The only cases where this produces a different
result overall are when SCEV knows a non-local fact, and it doesn't
get materialized into the IR.  Those are exactly the cases where
using zext nneg are most useful.  We do run the risk of e.g. a
missing combine - since we haven't updated most of them yet - but
that seems like a manageable risk.

Note that there are much deeper algorithmic changes we could make
to this code to exploit zext nneg, but this seemed like a reasonable
and low risk starting point.


  Commit: 17798ad7c3596d9b74b5f55ac41f10fe01e8ee4b
      https://github.com/llvm/llvm-project/commit/17798ad7c3596d9b74b5f55ac41f10fe01e8ee4b
  Author: Daniel Thornburgh <dthorn at google.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M lldb/packages/Python/lldbsuite/test/builders/darwin.py
    A lldb/packages/Python/lldbsuite/test/make/entitlements-macos.plist

  Log Message:
  -----------
  [lldb] Use get-task-allow entitlement on macOS too (#71112)

Running the LLDB test suite in a GUI-less macOS environment (say, ssh)
requires that the debugged tasks be signed with the get-task-allow
entitlement.


  Commit: 778a48468b5fce8deafb40be0704cb69b052a50a
      https://github.com/llvm/llvm-project/commit/778a48468b5fce8deafb40be0704cb69b052a50a
  Author: Nick Desaulniers <nickdesaulniers at users.noreply.github.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M llvm/include/llvm/CodeGen/MachineInstr.h
    M llvm/include/llvm/IR/InlineAsm.h
    M llvm/lib/CodeGen/MachineInstr.cpp
    M llvm/lib/CodeGen/TargetInstrInfo.cpp

  Log Message:
  -----------
  [InlineAsm] Steal a bit to denote a register is foldable (#70738)


When using the inline asm constraint string "rm" (or "g"), we generally
would like the compiler to choose "r", but it is permitted to choose "m"
if there's register pressure. This is distinct from "r" in which the
register is not permitted to be spilled to the stack.

The decision of which to use must be made at some point.  Currently, the
instruction selection frameworks (ISELs) make the choice, and the
register allocators had better be able to handle the result.

Steal a bit from Storage when using register operands to disambiguate
between the two cases.  Add helpers/getters/setters, and print in MIR
when such a register is foldable.

The getter will later be used by the register allocation frameworks (and
asserted by the ISELs) while the setters will be used by the instruction
selection frameworks.

Link: https://github.com/llvm/llvm-project/issues/20571


  Commit: 890335bb28b96ab09ce3d6cf9c2e611bcabb36eb
      https://github.com/llvm/llvm-project/commit/890335bb28b96ab09ce3d6cf9c2e611bcabb36eb
  Author: Ellis Hoag <ellis.sparky.hoag at gmail.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp

  Log Message:
  -----------
  [InstrProf] Do not block functions from PGOUse (#71106)

The `skipPGO()` function was added in https://reviews.llvm.org/D137184.
Unfortunately, it also blocked functions from being annotated (PGOUse),
which I believe will cause confusion to users if a function has a
profile but it is not PGO'd.

The docs for `noprofile` and `skipprofile` only claim to block
instrumentation, not PGO optimization:
https://llvm.org/docs/LangRef.html


  Commit: 7ccdad14ed2cab9ff9a7eb76a6cb7ddf10694ddc
      https://github.com/llvm/llvm-project/commit/7ccdad14ed2cab9ff9a7eb76a6cb7ddf10694ddc
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M llvm/lib/Target/RISCV/GISel/RISCVRegisterBankInfo.cpp

  Log Message:
  -----------
  [RISCV][GISel] Add helper to convert a LLT size to a RegisterBankInfo::ValueMapping* for FP. (#71123)

Use this to simplify code.


  Commit: 8d24d3900ec3f28902b2fad4a2c2c2b789257424
      https://github.com/llvm/llvm-project/commit/8d24d3900ec3f28902b2fad4a2c2c2b789257424
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M llvm/lib/Target/Mips/MipsISelLowering.cpp
    M llvm/test/CodeGen/Mips/llvm-ir/ashr.ll
    M llvm/test/CodeGen/Mips/llvm-ir/lshr.ll
    M llvm/test/CodeGen/Mips/llvm-ir/shl.ll

  Log Message:
  -----------
  [Mips] In LowerShift*Parts, xor with bits-1 instead of -1. (#71149)

If we start with an i128 shift, the initial shift amount would usually
have zeros in bit 8 and above. xoring the shift amount with -1 will set
those upper bits to 1. If DAGCombiner is able to prove those bits are
now 1, then the shift that uses the xor will be replaced with undef.
Which we don't want.

Reduce the xor constant to VT.bits-1 where VT is half the size of the
larger shift type. This avoids toggling the upper bits. The hardware
shift instruction only uses the lower bits of the shift amount. I assume
the code used NOT because the hardware doesn't use the upper bits, but
that isn't compatible with the LLVM poison semantics.

Fixes #71142.


  Commit: 7ca0f4418a6d385e07d9aff42865c34d3dc2adf7
      https://github.com/llvm/llvm-project/commit/7ca0f4418a6d385e07d9aff42865c34d3dc2adf7
  Author: Philip Reames <preames at rivosinc.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    A llvm/test/Transforms/IndVarSimplify/widen-nonnegative-countdown.ll

  Log Message:
  -----------
  [indvars] Add tests for countdown style loops w/nonnegative IVs

Adding test coverage in advance of upcoming changes.  Note that these
tests specifically use unsigned comparisons for the backends, the
signed versions are fairly well handled by existing logic.


  Commit: 1ffea97ffdbe4148db7c6db4638d2ec56234c502
      https://github.com/llvm/llvm-project/commit/1ffea97ffdbe4148db7c6db4638d2ec56234c502
  Author: Philip Reames <preames at rivosinc.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M llvm/lib/Transforms/Utils/SimplifyIndVar.cpp
    M llvm/test/Transforms/IndVarSimplify/promote-iv-to-eliminate-casts.ll
    M llvm/test/Transforms/IndVarSimplify/widen-nonnegative.ll
    M llvm/test/Transforms/LoopFlatten/widen-iv.ll

  Log Message:
  -----------
  [indvars] Support known positive extends in getExtendedOperandRecurrence (#70990)

IndVars has the existing notion of a narrow definition which is known to
positive and thus both sign and zero extension kinds are actually the
same operations. There's existing logic for forming a SCEV based on the
extension kind and the no-wrap flags. This change extends that logic to
form the opposite extension kind for a positive def if doing so is
allowed by the flags. Note that we already do something analogous for
the getWideRecurrence case as well.


  Commit: 6b29279a49ceb2d256da8f57480f48ebc4e8cee1
      https://github.com/llvm/llvm-project/commit/6b29279a49ceb2d256da8f57480f48ebc4e8cee1
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

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

  Log Message:
  -----------
  [X86] X86ISelLowering.cpp - use StringRef::starts_with/ends_with instead of startswith/endswith. NFC.

startswith/endswith wrap starts_with/ends_with and will eventually go away (to more closely match string_view)


  Commit: d3e7a48cbde060a6dbc1edcb00f375fb2f9405dc
      https://github.com/llvm/llvm-project/commit/d3e7a48cbde060a6dbc1edcb00f375fb2f9405dc
  Author: Johannes Doerfert <johannes at jdoerfert.de>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp
    M clang/test/OpenMP/nvptx_target_parallel_reduction_codegen.cpp
    M clang/test/OpenMP/nvptx_target_parallel_reduction_codegen_tbaa_PR46146.cpp
    M clang/test/OpenMP/nvptx_teams_reduction_codegen.cpp
    M clang/test/OpenMP/reduction_implicit_map.cpp
    M clang/test/OpenMP/target_teams_generic_loop_codegen.cpp
    M llvm/include/llvm/Frontend/OpenMP/OMPKinds.def
    M llvm/lib/Transforms/IPO/OpenMPOpt.cpp
    M llvm/test/Transforms/OpenMP/add_attributes.ll
    M openmp/libomptarget/DeviceRTL/include/Interface.h
    M openmp/libomptarget/DeviceRTL/src/Reduction.cpp

  Log Message:
  -----------
  [OpenMP][NFC] Remove a no-op function


  Commit: b863fcb6d4514ca61f7cfe5f6750b8ce06659eae
      https://github.com/llvm/llvm-project/commit/b863fcb6d4514ca61f7cfe5f6750b8ce06659eae
  Author: Igor Kudrin <ikudrin at accesssoftek.com>
  Date:   2023-11-04 (Sat, 04 Nov 2023)

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

  Log Message:
  -----------
  [OptBisect] Remove an unused method declaration. NFC (#71145)

The body of `OptBisect::checkPass()` was moved to
`OptBisect::shouldRunPass()` in
[D137149](https://reviews.llvm.org/D137149).


  Commit: 9dfdbd788707edc8c39eb2bff16004aba1f3586b
      https://github.com/llvm/llvm-project/commit/9dfdbd788707edc8c39eb2bff16004aba1f3586b
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/AArch64/extractelements-to-shuffle.ll
    M llvm/test/Transforms/SLPVectorizer/X86/crash_clear_undefs.ll
    M llvm/test/Transforms/SLPVectorizer/X86/hadd-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/X86/hadd.ll
    M llvm/test/Transforms/SLPVectorizer/X86/hsub-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/X86/hsub.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reused-extractelements.ll

  Log Message:
  -----------
  [SLP]Improve tryToGatherExtractElements by using per-register analysis.

Currently tryToGatherExtractElements function analyzes the whole vector,
regrdless number of actual registers, used in this vector. It may
prevent some optimizations, because per-register analysis may allow to
simplify the final code by reusing more already emitted vectors and
better shuffles.

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


  Commit: edd690b02e16e991393bf7f67631196942369aed
      https://github.com/llvm/llvm-project/commit/edd690b02e16e991393bf7f67631196942369aed
  Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M clang-tools-extra/clang-doc/BitcodeReader.cpp
    M clang-tools-extra/clang-doc/BitcodeWriter.cpp
    M clang-tools-extra/clang-doc/Generators.cpp
    M clang-tools-extra/clang-doc/Representation.cpp
    M clang-tools-extra/clang-doc/Representation.h
    M clang-tools-extra/clang-doc/YAMLGenerator.cpp
    M clang-tools-extra/clangd/refactor/InsertionPoint.cpp
    M clang-tools-extra/unittests/clang-doc/BitcodeTest.cpp
    M clang-tools-extra/unittests/clang-doc/HTMLGeneratorTest.cpp
    M clang-tools-extra/unittests/clang-doc/MDGeneratorTest.cpp
    M clang-tools-extra/unittests/clang-doc/MergeTest.cpp
    M clang-tools-extra/unittests/clang-doc/SerializeTest.cpp
    M clang-tools-extra/unittests/clang-doc/YAMLGeneratorTest.cpp
    M clang/include/clang/AST/ASTContext.h
    M clang/include/clang/AST/Decl.h
    M clang/include/clang/AST/Type.h
    M clang/lib/AST/ASTContext.cpp
    M clang/lib/AST/Decl.cpp
    M clang/lib/AST/DeclCXX.cpp
    M clang/lib/AST/DeclTemplate.cpp
    M clang/lib/AST/MicrosoftMangle.cpp
    M clang/lib/AST/RecordLayoutBuilder.cpp
    M clang/lib/AST/Type.cpp
    M clang/lib/CodeGen/CGObjCMac.cpp
    M clang/lib/CodeGen/CGOpenMPRuntime.cpp
    M clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp
    M clang/lib/Frontend/Rewrite/RewriteModernObjC.cpp
    M clang/lib/Frontend/Rewrite/RewriteObjC.cpp
    M clang/lib/Index/IndexSymbol.cpp
    M clang/lib/Index/USRGeneration.cpp
    M clang/lib/Sema/HLSLExternalSemaSource.cpp
    M clang/lib/Sema/Sema.cpp
    M clang/lib/Sema/SemaCodeComplete.cpp
    M clang/lib/Sema/SemaDecl.cpp
    M clang/lib/Sema/SemaDeclAttr.cpp
    M clang/lib/Sema/SemaDeclCXX.cpp
    M clang/lib/Sema/SemaDeclObjC.cpp
    M clang/lib/Sema/SemaExprCXX.cpp
    M clang/lib/Sema/SemaStmt.cpp
    M clang/lib/Sema/SemaTemplate.cpp
    M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
    M clang/lib/Sema/SemaType.cpp
    M clang/lib/Sema/TreeTransform.h
    M clang/lib/Serialization/ASTReaderDecl.cpp
    M clang/lib/Serialization/ASTWriter.cpp
    M clang/lib/Serialization/ASTWriterDecl.cpp
    M clang/lib/StaticAnalyzer/Checkers/WebKit/NoUncountedMembersChecker.cpp
    M clang/lib/StaticAnalyzer/Checkers/WebKit/RefCntblBaseVirtualDtorChecker.cpp
    M clang/tools/libclang/CIndexCXX.cpp
    M clang/unittests/AST/ASTImporterTest.cpp
    M clang/utils/ClangVisualizers/clang.natvis
    M lldb/source/Plugins/Language/ObjC/NSDictionary.cpp
    M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTypeEncodingParser.cpp
    M lldb/source/Plugins/Platform/FreeBSD/PlatformFreeBSD.cpp
    M lldb/source/Plugins/Platform/Linux/PlatformLinux.cpp
    M lldb/source/Plugins/Platform/NetBSD/PlatformNetBSD.cpp
    M lldb/source/Plugins/RegisterTypeBuilder/RegisterTypeBuilderClang.cpp
    M lldb/source/Plugins/SymbolFile/CTF/SymbolFileCTF.cpp
    M lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
    M lldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.cpp
    M lldb/source/Plugins/SymbolFile/NativePDB/UdtRecordCompleter.cpp
    M lldb/source/Plugins/SymbolFile/PDB/PDBASTParser.cpp
    M lldb/source/Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.cpp
    M lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
    M lldb/unittests/Symbol/TestTypeSystemClang.cpp

  Log Message:
  -----------
  [clang][NFC] Refactor `TagTypeKind` (#71160)

This patch converts TagTypeKind into scoped enum. Among other benefits,
this allows us to forward-declare it where necessary.


  Commit: 7c93452e174dd182c36471bc1e8272f26c0ae6db
      https://github.com/llvm/llvm-project/commit/7c93452e174dd182c36471bc1e8272f26c0ae6db
  Author: Philip Reames <preames at rivosinc.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M llvm/lib/Transforms/Utils/SimplifyIndVar.cpp

  Log Message:
  -----------
  [indvars] Restructure getExtendedOperandRecurrence [nfc]

As suggested during review of https://github.com/llvm/llvm-project/pull/70990.


  Commit: 141122ece3c09a2f2e3c0280687633820bf632d5
      https://github.com/llvm/llvm-project/commit/141122ece3c09a2f2e3c0280687633820bf632d5
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M clang/utils/TableGen/ClangAttrEmitter.cpp
    M clang/utils/TableGen/NeonEmitter.cpp
    M llvm/utils/TableGen/AsmMatcherEmitter.cpp
    M llvm/utils/TableGen/CallingConvEmitter.cpp
    M llvm/utils/TableGen/CodeGenSchedule.cpp
    M llvm/utils/TableGen/DXILEmitter.cpp
    M llvm/utils/TableGen/GlobalISel/CodeExpander.cpp
    M llvm/utils/TableGen/GlobalISelMatchTableExecutorEmitter.h
    M llvm/utils/TableGen/X86EVEX2VEXTablesEmitter.cpp
    M llvm/utils/TableGen/X86FoldTablesEmitter.cpp

  Log Message:
  -----------
  [TableGen] Use StringRef::starts_with/ends_with instead of startswith/endswith. NFC.

startswith/endswith wrap starts_with/ends_with and will eventually go away (to more closely match string_view)


  Commit: af599389f5a346491dd6acab633bc86eeb0fe444
      https://github.com/llvm/llvm-project/commit/af599389f5a346491dd6acab633bc86eeb0fe444
  Author: Fangrui Song <i at maskray.me>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M lld/test/ELF/Inputs/allow-shlib-undefined.s
    M lld/test/ELF/allow-shlib-undefined.s

  Log Message:
  -----------
  [ELF] Improve --no-allow-shlib-undefined tests


  Commit: 3fe69bab1149e20f87ac31f8b2557baa88fcdd14
      https://github.com/llvm/llvm-project/commit/3fe69bab1149e20f87ac31f8b2557baa88fcdd14
  Author: Mehdi Amini <joker.eph at gmail.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M llvm/CMakeLists.txt
    M llvm/include/llvm/Config/llvm-config.h.cmake

  Log Message:
  -----------
  Improve llvm-config.h to record which target is configured or not (#71164)

These macro can help guarding some tests and other section of code
which rely on detecting if a particular target is available. This
is common the MLIR codegeneration for GPU targets for example.


  Commit: 2b76bdc33b555beb637c13b8bdbd8d3e935d9d56
      https://github.com/llvm/llvm-project/commit/2b76bdc33b555beb637c13b8bdbd8d3e935d9d56
  Author: Kazu Hirata <kazu at google.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M clang-tools-extra/clang-doc/BitcodeReader.cpp

  Log Message:
  -----------
  [clang-doc] Fix a warning

This patch fixes:

  clang-tools-extra/clang-doc/BitcodeReader.cpp:78:3: error: default
  label in switch which covers all enumeration values
  [-Werror,-Wcovered-switch-default]


  Commit: 49168b2512ef55e225e9b7cd0821daa5c8ae5a9b
      https://github.com/llvm/llvm-project/commit/49168b2512ef55e225e9b7cd0821daa5c8ae5a9b
  Author: Fangrui Song <i at maskray.me>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M lld/ELF/Writer.cpp
    M lld/test/ELF/allow-shlib-undefined.s

  Log Message:
  -----------
  [ELF] Enhance --no-allow-shlib-undefined to report non-exported definition (#70769)

For a DSO with all DT_NEEDED entries accounted for, if it contains an
undefined non-weak symbol that shares a name with a non-exported
definition (hidden visibility or localized by a version script), and
there is no DSO definition, we should also report an error. Because the
definition is not exported, it cannot resolve the DSO reference at
runtime.

GNU ld introduced this error-checking in [April
2003](https://sourceware.org/pipermail/binutils/2003-April/026568.html).
The feature is available for executable links but not for -shared, and
it is
orthogonal to --no-allow-shlib-undefined. We make the feature part of
--no-allow-shlib-undefined and work with -shared when
--no-allow-shlib-undefined is specified.

A subset of this error-checking is covered by commit
1981b1b6b92f7579a30c9ed32dbdf3bc749c1b40 for --gc-sections discarded
sections. This patch covers non-discarded sections as well.

Internally, I have identified 2 bugs (which would fail with
LD_BIND_NOW=1) covered by commit
1981b1b6b92f7579a30c9ed32dbdf3bc749c1b40


  Commit: 19b5495b653a00da7a250f48b4f739fcf2bbe82f
      https://github.com/llvm/llvm-project/commit/19b5495b653a00da7a250f48b4f739fcf2bbe82f
  Author: Manman Ren <manman.ren at gmail.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    A llvm/include/llvm/Transforms/IPO/MergeFunctionsIgnoringConst.h
    M llvm/include/llvm/Transforms/Utils/FunctionComparator.h
    A llvm/include/llvm/Transforms/Utils/FunctionComparatorIgnoringConst.h
    A llvm/include/llvm/Transforms/Utils/MergeFunctionsIgnoringConst.h
    M llvm/lib/Passes/PassBuilder.cpp
    M llvm/lib/Passes/PassBuilderPipelines.cpp
    M llvm/lib/Passes/PassRegistry.def
    M llvm/lib/Transforms/IPO/CMakeLists.txt
    A llvm/lib/Transforms/IPO/MergeFunctionsIgnoringConst.cpp
    M llvm/lib/Transforms/Utils/CMakeLists.txt
    A llvm/lib/Transforms/Utils/FunctionComparatorIgnoringConst.cpp
    A llvm/test/Transforms/MergeFuncIgnoringConst/merge_func.ll
    A llvm/test/Transforms/MergeFuncIgnoringConst/merge_with_exception.ll

  Log Message:
  -----------
  Port Swift's merge function pass to llvm: merging functions that differ in constants (#68235)

See RFC for details:
https://discourse.llvm.org/t/rfc-for-moving-swift-s-merge-function-pass-to-llvm/73778

We will need to refactor extension to FunctionComparator/FunctionHash to
StructuralHash. This patch adds a new pass which is ported from Swift,
and will need to discuss on how to migrate Swift’s pass over after we
land this in llvm.

Create this PR to get some early review on the patch.

---------

Co-authored-by: Manman Ren <mren at meta.com>


  Commit: 70b35ec0a81375c49482755f08afc9463210ca87
      https://github.com/llvm/llvm-project/commit/70b35ec0a81375c49482755f08afc9463210ca87
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M llvm/include/llvm/CodeGen/ISDOpcodes.h
    M llvm/include/llvm/CodeGen/SelectionDAGNodes.h
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp
    M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp

  Log Message:
  -----------
  [SelectionDAG] Add initial support for nneg flag on ISD::ZERO_EXTEND. (#70872)

This adds the nneg flag to SDNodeFlags and the node printing code.
SelectionDAGBuilder will add this flag to the node if the target doesn't
prefer sign extend.

A future RISC-V patch can remove the sign extend preference from
SelectionDAGBuilder.

I've also added the flag to the DAG combine that converts
ISD::SIGN_EXTEND to ISD::ZERO_EXTEND.


  Commit: 5adf6ab7ff9c0bcf32c58224aee6a6a3e901abee
      https://github.com/llvm/llvm-project/commit/5adf6ab7ff9c0bcf32c58224aee6a6a3e901abee
  Author: Philip Reames <preames at rivosinc.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M llvm/lib/Transforms/Utils/SimplifyIndVar.cpp
    M llvm/test/Analysis/ScalarEvolution/guards.ll
    M llvm/test/Transforms/IndVarSimplify/X86/pr59615.ll
    M llvm/test/Transforms/IndVarSimplify/post-inc-range.ll
    M llvm/test/Transforms/LoopFlatten/widen-iv2.ll
    M llvm/test/Transforms/LoopFlatten/widen-iv3.ll

  Log Message:
  -----------
  Revert "[IndVars] Generate zext nneg when locally obvious"

This reverts commit a6c8e27b3a052913a15a13ee0d4ac466c5ab3f92.  It appears likely to have caused https://lab.llvm.org/buildbot/#/builders/57/builds/30988.


  Commit: f7cd6194a2320429b1569172b868b21947c37efa
      https://github.com/llvm/llvm-project/commit/f7cd6194a2320429b1569172b868b21947c37efa
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M llvm/lib/IR/IntrinsicInst.cpp

  Log Message:
  -----------
  [IR] IntrinsicInst.cpp - use StringRef::starts_with/ends_with instead of startswith/endswith. NFC.

startswith/endswith wrap starts_with/ends_with and will eventually go away (to more closely match string_view)

Also add missing assert message


  Commit: bcb685e11945946335c2dc6265779f0226491b49
      https://github.com/llvm/llvm-project/commit/bcb685e11945946335c2dc6265779f0226491b49
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M llvm/include/llvm/Support/TypeName.h
    M llvm/include/llvm/Support/YAMLTraits.h
    M llvm/lib/Support/APFloat.cpp
    M llvm/lib/Support/CachePruning.cpp
    M llvm/lib/Support/DebugCounter.cpp
    M llvm/lib/Support/ELFAttributes.cpp
    M llvm/lib/Support/Path.cpp
    M llvm/lib/Support/RISCVISAInfo.cpp
    M llvm/lib/Support/Signals.cpp
    M llvm/lib/Support/SpecialCaseList.cpp
    M llvm/lib/Support/StringRef.cpp
    M llvm/lib/Support/UnicodeNameToCodepoint.cpp
    M llvm/lib/Support/VirtualFileSystem.cpp
    M llvm/lib/Support/Windows/Path.inc
    M llvm/lib/Support/Windows/Process.inc
    M llvm/lib/Support/YAMLParser.cpp

  Log Message:
  -----------
  [Support] Use StringRef::starts_with/ends_with instead of startswith/endswith. NFC.

startswith/endswith wrap starts_with/ends_with and will eventually go away (to more closely match string_view)


  Commit: 5192e299cf444040025ccf3e75bfad36b4624050
      https://github.com/llvm/llvm-project/commit/5192e299cf444040025ccf3e75bfad36b4624050
  Author: Maksim Levental <maksim.levental at gmail.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M mlir/docs/Bindings/Python.md
    M mlir/lib/Bindings/Python/Globals.h
    M mlir/lib/Bindings/Python/IRModule.cpp
    M mlir/lib/Bindings/Python/MainModule.cpp
    M mlir/python/mlir/_mlir_libs/_mlir/__init__.pyi
    A mlir/test/python/ir/custom_dialect/__init__.py
    A mlir/test/python/ir/custom_dialect/custom.py
    A mlir/test/python/ir/custom_dialect/lit.local.cfg
    M mlir/test/python/ir/dialects.py
    M mlir/test/python/ir/insertion_point.py

  Log Message:
  -----------
  [mlir][python] remove various caching mechanisms (#70831)

This PR removes the various caching mechanisms currently in the python
bindings - both positive caching and negative caching.


  Commit: 621d95a8765ad044a27750477636248397963518
      https://github.com/llvm/llvm-project/commit/621d95a8765ad044a27750477636248397963518
  Author: Brad Smith <brad at comstyle.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

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

  Log Message:
  -----------
  [ADT] Make use of the endian.h header on OpenBSD (#71144)

OpenBSD prefers the use of the endian.h header.


  Commit: c880fdc0f05f4a18400c5633cf6cd8fad85e3df0
      https://github.com/llvm/llvm-project/commit/c880fdc0f05f4a18400c5633cf6cd8fad85e3df0
  Author: XChy <xxs_chy at outlook.com>
  Date:   2023-11-04 (Sat, 04 Nov 2023)

  Changed paths:
    M llvm/lib/Transforms/Scalar/DFAJumpThreading.cpp
    M llvm/test/Transforms/DFAJumpThreading/dfa-unfold-select.ll

  Log Message:
  -----------
  [DFAJumpThreading] Remove incoming StartBlock from all phis when unfolding select (#71082)

Fixes #65222.
When unfolding select into diamond-like control flow, we need to remove
the StartBlock from all phis in EndBlock.


  Commit: 284c6990c133ed88f32de111accacc9f55a7a51d
      https://github.com/llvm/llvm-project/commit/284c6990c133ed88f32de111accacc9f55a7a51d
  Author: Nick Desaulniers <nickdesaulniers at users.noreply.github.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

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

  Log Message:
  -----------
  [CalcSpillWeights] don't mark live intervals with spillable inlineasm ops as having infinite spill weight (#70747)

This is necessary for RegAllocGreedy support for memory folding inline
asm that uses "rm" constraints.

Thanks to @qcolombet for the suggestion.

Link: https://github.com/llvm/llvm-project/issues/20571


  Commit: 32e35b21b5971cc939b1de1194145d9b934fcb54
      https://github.com/llvm/llvm-project/commit/32e35b21b5971cc939b1de1194145d9b934fcb54
  Author: yonghong-song <yhs at fb.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M llvm/lib/Target/BPF/BPFPreserveDIType.cpp
    A llvm/test/CodeGen/BPF/BTF/builtin-btf-type-id-local.ll

  Log Message:
  -----------
  [BPF] Skip modifiers for __builtin_btf_type_id() local type (#71094)

BPF upstream reported an inconsistent behavior w.r.t. BPF_TYPE_ID_LOCAL
vs. BPF_TYPE_ID_TARGET (or BPF_TYPE_ID_REMOTE in LLVM terminology).

For BPF_TYPE_ID_TARGET, all modifiers (like 'const' and 'volatile') are
ignored in the final type encoding. For example, for type
 'const struct foo', the eventually encoding in BTF relocation
is 'struct foo'. This faciliates libbpf to match corresponding kernel
types with considering any modifiers.

Currently behavior for BPF_TYPE_ID_LOCAL is different. It will encode
'const struct foo' in BTF relocation and such discrepancy confused users
([1]).

This patch fixed this discrepancy by making BPF_TYPE_ID_LOCAL BTF type
representation the sams as BPF_TYPE_ID_TARGET. This should have minimum
user impact since ultimately user wants to get a real time not a 'const'
type modifier.

The selftest builtin-btf-type-id-2.ll is used to test BPF_TYPE_ID_TARGET
with 'const' modifier. Adapt the same test for BPF_TYPE_ID_LOCAL. And
the below diff shows now both BPF_TYPE_ID_LOCAL and BPF_TYPE_ID_TARGET
produces the same type:

$ diff test/CodeGen/BPF/BTF/builtin-btf-type-id-2.ll
test/CodeGen/BPF/BTF/builtin-btf-type-id-local.ll
--- test/CodeGen/BPF/BTF/builtin-btf-type-id-2.ll 2023-07-30
16:58:20.657528310 -0700
+++ test/CodeGen/BPF/BTF/builtin-btf-type-id-local.ll 2023-11-02
10:23:25.356959008 -0700
  @@ -6,7 +6,7 @@
   ;     int a;
   ;   };
   ;   int test(void) {
  -;     return __builtin_btf_type_id(*(const struct s *)0, 1);
  +;     return __builtin_btf_type_id(*(const struct s *)0, 0);
   ;   }
   ; Compilation flag:
; clang -target bpf -O2 -g -S -emit-llvm -Xclang -disable-llvm-passes
test.c
  $

[1]
https://lore.kernel.org/bpf/CAN+4W8h3yDjkOLJPiuKVKTpj_08pBz8ke6vN=Lf8gcA=iYBM-g@mail.gmail.com/

Co-authored-by: Yonghong Song <yonghong.song at linux.dev>


  Commit: 76b1a7c91651b8c3516913ce9b11c05147ec46d2
      https://github.com/llvm/llvm-project/commit/76b1a7c91651b8c3516913ce9b11c05147ec46d2
  Author: Ryan Prichard <rprichard at google.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M libcxx/cmake/config-ix.cmake
    M libcxxabi/cmake/config-ix.cmake

  Log Message:
  -----------
  [libc++][Android] Explicitly declare low-level lib existence (#70534)

Android's librt and libpthread functionality is part of libc.{a,so}
instead. The atomic APIs are part of the compiler-rt builtins archive.
Android does have libdl.

Android's libc.so has `__cxa_thread_atexit_impl` starting in API 23, and
the oldest supported API is 21, so continue using feature detection for
that API.

These settings need to be declared explicitly for the sake of the fuzzer
library's custom libc++ build `add_custom_libcxx`. That macro builds
libc++ using `-DCMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY`, which
breaks the feature detection.


  Commit: 71a13675dad588712094fb09c655570974f98540
      https://github.com/llvm/llvm-project/commit/71a13675dad588712094fb09c655570974f98540
  Author: Adrian Prantl <adrian-prantl at users.noreply.github.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M llvm/lib/DWARFLinker/DWARFLinker.cpp
    M llvm/lib/DWARFLinkerParallel/DWARFLinkerCompileUnit.cpp
    M llvm/test/tools/dsymutil/Inputs/swift-interface.s
    M llvm/test/tools/dsymutil/X86/swift-interface.test

  Log Message:
  -----------
  [dsymutil] Filter our swiftinterface files from the toolchain. (#71205)

Dsymutil already avoids copying textual Swift interface files from the
SDK, since any consumer would have to have a matching SDK installed
anyway. It should also do the same thing with interfaces found in the
toolchain itself, which includes the compiler built-in libraries such as
Swift (=the standard library), and _Concurrency.

rdar://117881604


  Commit: a682a9cfd006c52559387f80398b720d529595d1
      https://github.com/llvm/llvm-project/commit/a682a9cfd006c52559387f80398b720d529595d1
  Author: Nikita Popov <nikita.ppv at gmail.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    R llvm/include/llvm/Transforms/IPO/MergeFunctionsIgnoringConst.h
    M llvm/include/llvm/Transforms/Utils/FunctionComparator.h
    R llvm/include/llvm/Transforms/Utils/FunctionComparatorIgnoringConst.h
    R llvm/include/llvm/Transforms/Utils/MergeFunctionsIgnoringConst.h
    M llvm/lib/Passes/PassBuilder.cpp
    M llvm/lib/Passes/PassBuilderPipelines.cpp
    M llvm/lib/Passes/PassRegistry.def
    M llvm/lib/Transforms/IPO/CMakeLists.txt
    R llvm/lib/Transforms/IPO/MergeFunctionsIgnoringConst.cpp
    M llvm/lib/Transforms/Utils/CMakeLists.txt
    R llvm/lib/Transforms/Utils/FunctionComparatorIgnoringConst.cpp
    R llvm/test/Transforms/MergeFuncIgnoringConst/merge_func.ll
    R llvm/test/Transforms/MergeFuncIgnoringConst/merge_with_exception.ll

  Log Message:
  -----------
  Revert "Port Swift's merge function pass to llvm: merging functions that differ in constants (#68235)"

This reverts commit 19b5495b653a00da7a250f48b4f739fcf2bbe82f.

PR landed without approval, with severe quality issues.


  Commit: 52491c99fa8b30a558749da231fed7544159edca
      https://github.com/llvm/llvm-project/commit/52491c99fa8b30a558749da231fed7544159edca
  Author: Christian Ulmann <christianulmann at gmail.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M mlir/test/Integration/Dialect/SparseTensor/CPU/block.mlir
    M mlir/test/Integration/Dialect/SparseTensor/CPU/dense_output.mlir
    M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_ds.mlir
    M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_flatten.mlir
    M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_matvec.mlir
    M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_mttkrp.mlir
    M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_out_simple.mlir
    M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_sampled_matmul.mlir
    M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_sorted_coo.mlir
    M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_spmm.mlir
    M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_sum.mlir
    M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_sum_bf16.mlir
    M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_sum_c32.mlir
    M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_sum_f16.mlir
    M mlir/test/Integration/Dialect/SparseTensor/GPU/CUDA/sparse-sampled-matmul-lib.mlir
    M mlir/test/Integration/Dialect/SparseTensor/GPU/CUDA/sparse-sddmm-lib.mlir
    M mlir/test/Integration/Dialect/SparseTensor/python/test_output.py
    M mlir/test/Integration/Dialect/Vector/CPU/ArmSME/load-store-128-bit-tile.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/X86Vector/test-inline-asm-vector-avx512.mlir
    M mlir/test/Integration/GPU/CUDA/sm90/tma_load_128x64_swizzle128b.mlir
    M mlir/test/Integration/GPU/CUDA/sm90/tma_load_64x64_swizzle128b.mlir

  Log Message:
  -----------
  [MLIR][LLVM] Remove typed pointer remnants from integration tests (#71208)

This commit removes all LLVM dialect typed pointers from the integration
tests. Typed pointers have been deprecated for a while now and it's
planned to soon remove them from the LLVM dialect.

Related PSA:
https://discourse.llvm.org/t/psa-removal-of-typed-pointers-from-the-llvm-dialect/74502


  Commit: fcc26bad82e190e1ec09bc6fe76ea320f5ffeeeb
      https://github.com/llvm/llvm-project/commit/fcc26bad82e190e1ec09bc6fe76ea320f5ffeeeb
  Author: Christian Ulmann <christianulmann at gmail.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M mlir/test/Target/LLVMIR/amx.mlir
    M mlir/test/Target/LLVMIR/arm-sme.mlir
    M mlir/test/Target/LLVMIR/arm-sve.mlir
    M mlir/test/Target/LLVMIR/llvmir-debug.mlir
    M mlir/test/Target/LLVMIR/llvmir-intrinsics.mlir
    M mlir/test/Target/LLVMIR/llvmir-invalid.mlir
    M mlir/test/Target/LLVMIR/llvmir-types.mlir
    M mlir/test/Target/LLVMIR/llvmir.mlir
    M mlir/test/Target/LLVMIR/nvvmir.mlir
    M mlir/test/Target/LLVMIR/openacc-llvm.mlir
    M mlir/test/Target/LLVMIR/openmp-nested.mlir

  Log Message:
  -----------
  [MLIR][LLVM] Remove typed pointer remnants from target tests (#71210)

This commit removes all LLVM dialect typed pointers from the target
tests. Typed pointers have been deprecated for a while now and it's
planned to soon remove them from the LLVM dialect.

Related PSA:
https://discourse.llvm.org/t/psa-removal-of-typed-pointers-from-the-llvm-dialect/74502


  Commit: c6c85550925c5a95a6d30cf8ad8c57fad792c804
      https://github.com/llvm/llvm-project/commit/c6c85550925c5a95a6d30cf8ad8c57fad792c804
  Author: Mehdi Amini <mamini at nvidia.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:

  Log Message:
  -----------
  [𝘀𝗽𝗿] landed version

Created using spr 1.3.4


Compare: https://github.com/llvm/llvm-project/compare/e5cde4c7919e...c6c85550925c


More information about the All-commits mailing list