[all-commits] [llvm/llvm-project] d8f061: [clang][Interp] Allow ltor casts for null pointers

wanglei via All-commits all-commits at lists.llvm.org
Thu Jul 18 05:58:16 PDT 2024


  Branch: refs/heads/users/wangleiat/spr/main.lldelfloongarch-add-support-for-r_larch_le_hi20addlo12_r-relocations
  Home:   https://github.com/llvm/llvm-project
  Commit: d8f0611acc2658ccc54d985044aa115716c6ad34
      https://github.com/llvm/llvm-project/commit/d8f0611acc2658ccc54d985044aa115716c6ad34
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M clang/lib/AST/Interp/EvalEmitter.cpp
    M clang/test/CodeGenCXX/nullptr.cpp

  Log Message:
  -----------
  [clang][Interp] Allow ltor casts for null pointers

We can't read from them but we special-case them later.


  Commit: 0b3943f3bba71e0cf9ea9984dae472cf503bca21
      https://github.com/llvm/llvm-project/commit/0b3943f3bba71e0cf9ea9984dae472cf503bca21
  Author: Keyi Zhang <Kuree at users.noreply.github.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

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

  Log Message:
  -----------
  [MLIR][SCF] fix scf.index_switch fold convergence (#98535) (#98680)

If the `scf.index_switch` op has no result, the current fold logic
results in an infinite loop (see #98535). The is because `fold`
mechanism does not support *erasing* zero-result ops. This PR moves the
fold logic to a canonicalizer and fix the issue.


  Commit: 58c7df90f838251c3682abfe91abadaa68ff6a01
      https://github.com/llvm/llvm-project/commit/58c7df90f838251c3682abfe91abadaa68ff6a01
  Author: Yeting Kuo <46629943+yetingk at users.noreply.github.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M clang/test/Driver/print-supported-extensions-riscv.c
    M clang/test/Preprocessor/riscv-target-features.c
    M llvm/docs/RISCVUsage.rst
    M llvm/docs/ReleaseNotes.rst
    M llvm/lib/Target/RISCV/RISCVFeatures.td
    M llvm/test/CodeGen/RISCV/attributes.ll
    M llvm/test/MC/RISCV/attribute-arch.s
    M llvm/unittests/TargetParser/RISCVISAInfoTest.cpp

  Log Message:
  -----------
  [RISCV] Bump the version of Zicfilp/Zicfiss to 1.0 (#98891)

Both of them are ratified now.
https://wiki.riscv.org/display/HOME/Ratified+Extensions

This patch does not set them to non-experimental, since Zicfilp lacks
lld support and Zicfiss also lacks compiler-rt/libunwind support.


  Commit: 331ba4369ac3cdf2ac2c6f724f9beaf43fb3fea7
      https://github.com/llvm/llvm-project/commit/331ba4369ac3cdf2ac2c6f724f9beaf43fb3fea7
  Author: AtariDreams <gfunni234 at gmail.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/test/CodeGen/AArch64/cmp-to-cmn.ll
    M llvm/test/CodeGen/AArch64/typepromotion-overflow.ll

  Log Message:
  -----------
  [AArch64] Take cmn into account when adjusting compare constants (#98634)

Turning a cmp into cmn saves an extra mov and negate instruction, so
take that into account when choosing when to flip the compare operands.

This will allow further optimizations down the line when we fold more
variations of negative compares to cmn.

As part of this, do not consider right-hand operands whose absolute
value can be encoded into a cmn if it is the 2nd operand.


  Commit: 3a0e01543212c1e1c80f5665aee0e12289e06a29
      https://github.com/llvm/llvm-project/commit/3a0e01543212c1e1c80f5665aee0e12289e06a29
  Author: Rajat Bajpai <rbajpai at nvidia.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/lib/Target/NVPTX/NVPTXInstrInfo.td
    A llvm/test/CodeGen/NVPTX/rcp-opt.ll

  Log Message:
  -----------
  [NVPTX] Lower -1/x to neg.f64(rcp.rn.f64) instead of fdiv (#98343)

The NVPTX backend lowers 1/x to rcp.rn.f64 instruction instead of slower
fdiv instruction. However, in the case of -1/x, it uses the slower fdiv
instruction. After this change, -1/x will be lowered into neg.f64
(rcp.rn.f64).


  Commit: b132dd41eb1a8f6c1b19cedbd95fa3fde9e3ad8b
      https://github.com/llvm/llvm-project/commit/b132dd41eb1a8f6c1b19cedbd95fa3fde9e3ad8b
  Author: Stanislav Mekhanoshin <rampitec at users.noreply.github.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPU.td
    M llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp
    M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
    M llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
    M llvm/test/CodeGen/AMDGPU/check-subtarget-features.ll
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.wavefrontsize.ll
    M llvm/test/CodeGen/AMDGPU/unknown-processor.ll
    M llvm/test/MC/AMDGPU/gfx11_asm_vopc_t16_promote.s
    M llvm/test/MC/AMDGPU/wave32.s
    M llvm/test/MC/Disassembler/AMDGPU/gfx10-wave32.txt

  Log Message:
  -----------
  [AMDGPU] Remove wavefrontsize feature from GFX10+ (#98400)

Processor definition shall not include a default feature which may be
switched off by a different wave size. This allows not to write
-mattr=-wavefrontsize32,+wavefrontsize64 in tests.


  Commit: 5d12fa7d72a43eb54a3d8f953766323b97da5ca8
      https://github.com/llvm/llvm-project/commit/5d12fa7d72a43eb54a3d8f953766323b97da5ca8
  Author: David Stuttard <david.stuttard at amd.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
    M llvm/test/CodeGen/AMDGPU/indirect-addressing-si.ll

  Log Message:
  -----------
  [AMDGPU] Fix indirect dst bug for non-sgpr index (#98907)

When emitting indirect dst, if the idx is not SGPR there was a bug that
didn't
take into account that the subregister might be different from
computeIndirectRegAndOffset.


  Commit: 4eb30cfb3474e3770b465cdb39db3b7f6404c3ef
      https://github.com/llvm/llvm-project/commit/4eb30cfb3474e3770b465cdb39db3b7f6404c3ef
  Author: Mel Chen <mel.chen at sifive.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/include/llvm/IR/VectorBuilder.h
    M llvm/include/llvm/Transforms/Utils/LoopUtils.h
    M llvm/lib/IR/VectorBuilder.cpp
    M llvm/lib/Transforms/Utils/LoopUtils.cpp
    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/RISCV/inloop-reduction.ll
    A llvm/test/Transforms/LoopVectorize/RISCV/vectorize-force-tail-with-evl-cond-reduction.ll
    A llvm/test/Transforms/LoopVectorize/RISCV/vectorize-force-tail-with-evl-inloop-reduction.ll
    A llvm/test/Transforms/LoopVectorize/RISCV/vectorize-force-tail-with-evl-intermediate-store.ll
    A llvm/test/Transforms/LoopVectorize/RISCV/vectorize-force-tail-with-evl-ordered-reduction.ll
    A llvm/test/Transforms/LoopVectorize/RISCV/vectorize-force-tail-with-evl-reduction.ll
    A llvm/test/Transforms/LoopVectorize/RISCV/vplan-vp-intrinsics-reduction.ll
    M llvm/unittests/Transforms/Vectorize/VPlanTest.cpp

  Log Message:
  -----------
  [LV][EVL] Support in-loop reduction using tail folding with EVL. (#90184)

Following from #87816, add VPReductionEVLRecipe to describe vector
predication reduction.

Address one of TODOs from #76172.


  Commit: f091848504f838a7cb1868bf321fb622b7e2c127
      https://github.com/llvm/llvm-project/commit/f091848504f838a7cb1868bf321fb622b7e2c127
  Author: Tom Natan <130450079+tomnatan30 at users.noreply.github.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M mlir/test/mlir-tblgen/gen-dialect-doc.td
    M mlir/tools/mlir-tblgen/OpDocGen.cpp

  Log Message:
  -----------
  Add support for enum doc gen (#98885)


  Commit: dcf30d33662552f80e7b9f159d1a671442de694e
      https://github.com/llvm/llvm-project/commit/dcf30d33662552f80e7b9f159d1a671442de694e
  Author: Krasimir Georgiev <krasimir at google.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
    M utils/bazel/llvm-project-overlay/libc/libc_build_rules.bzl
    M utils/bazel/llvm-project-overlay/libc/test/UnitTest/BUILD.bazel
    M utils/bazel/llvm-project-overlay/libc/test/src/math/BUILD.bazel
    M utils/bazel/llvm-project-overlay/libc/test/src/string/BUILD.bazel
    M utils/bazel/llvm-project-overlay/libc/utils/MPFRWrapper/BUILD.bazel

  Log Message:
  -----------
  bazel build: pass __support_macros_config dep explicitly (NFCI) (#98999)

Passing it explicitly makes it that it's not made available to targets
that don't need it (also we've got some internal integration that trips
on it being passed implicitly in the rule definition).


  Commit: 244892735941a455506ae38ae0fb40cf80cdb351
      https://github.com/llvm/llvm-project/commit/244892735941a455506ae38ae0fb40cf80cdb351
  Author: cor3ntin <corentinjabot at gmail.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/Sema/Sema.h
    M clang/include/clang/Sema/SemaConcept.h
    M clang/lib/Sema/SemaConcept.cpp
    M clang/lib/Sema/SemaTemplateVariadic.cpp
    A clang/test/SemaCXX/cxx2c-fold-exprs.cpp
    M clang/www/cxx_status.html

  Log Message:
  -----------
  [Clang][C++26] Implement "Ordering of constraints involving fold expressions (#98160)

Implement https://isocpp.org/files/papers/P2963R3.pdf


  Commit: b3a446650c2c48743e148daeb9ddec8e74bb83a2
      https://github.com/llvm/llvm-project/commit/b3a446650c2c48743e148daeb9ddec8e74bb83a2
  Author: Pierre van Houtryve <pierre.vanhoutryve at amd.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/SIMemoryLegalizer.cpp
    M llvm/test/CodeGen/AMDGPU/GlobalISel/atomicrmw_fmax.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/atomicrmw_fmin.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/mubuf-global.ll
    M llvm/test/CodeGen/AMDGPU/atomic_optimizations_global_pointer.ll
    M llvm/test/CodeGen/AMDGPU/atomicrmw-expand.ll
    M llvm/test/CodeGen/AMDGPU/buffer-fat-pointer-atomicrmw-fadd.ll
    M llvm/test/CodeGen/AMDGPU/buffer-fat-pointer-atomicrmw-fmax.ll
    M llvm/test/CodeGen/AMDGPU/buffer-fat-pointer-atomicrmw-fmin.ll
    M llvm/test/CodeGen/AMDGPU/flat-atomicrmw-fadd.ll
    M llvm/test/CodeGen/AMDGPU/flat-atomicrmw-fmax.ll
    M llvm/test/CodeGen/AMDGPU/flat-atomicrmw-fmin.ll
    M llvm/test/CodeGen/AMDGPU/flat-atomicrmw-fsub.ll
    M llvm/test/CodeGen/AMDGPU/flat_atomics_i64.ll
    M llvm/test/CodeGen/AMDGPU/fp-atomics-gfx1200.ll
    M llvm/test/CodeGen/AMDGPU/fp-atomics-gfx940.ll
    M llvm/test/CodeGen/AMDGPU/global-atomicrmw-fadd.ll
    M llvm/test/CodeGen/AMDGPU/global-atomicrmw-fmax.ll
    M llvm/test/CodeGen/AMDGPU/global-atomicrmw-fmin.ll
    M llvm/test/CodeGen/AMDGPU/global-atomicrmw-fsub.ll
    M llvm/test/CodeGen/AMDGPU/global-saddr-load.ll
    M llvm/test/CodeGen/AMDGPU/global-saddr-store.ll
    M llvm/test/CodeGen/AMDGPU/global_atomics_i64.ll
    M llvm/test/CodeGen/AMDGPU/insert_waitcnt_for_precise_memory.ll
    M llvm/test/CodeGen/AMDGPU/local-atomicrmw-fadd.ll
    M llvm/test/CodeGen/AMDGPU/local-atomicrmw-fmax.ll
    M llvm/test/CodeGen/AMDGPU/local-atomicrmw-fmin.ll
    M llvm/test/CodeGen/AMDGPU/local-atomicrmw-fsub.ll
    M llvm/test/CodeGen/AMDGPU/memory-legalizer-fence-mmra-global.ll
    M llvm/test/CodeGen/AMDGPU/memory-legalizer-fence-mmra-local.ll
    M llvm/test/CodeGen/AMDGPU/memory-legalizer-fence.ll
    M llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-agent.ll
    M llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-system.ll
    M llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-volatile.ll
    M llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-workgroup.ll
    M llvm/test/CodeGen/AMDGPU/memory-legalizer-global-agent.ll
    M llvm/test/CodeGen/AMDGPU/memory-legalizer-global-system.ll
    M llvm/test/CodeGen/AMDGPU/memory-legalizer-global-volatile.ll
    M llvm/test/CodeGen/AMDGPU/memory-legalizer-global-workgroup.ll
    M llvm/test/CodeGen/AMDGPU/memory-legalizer-local-agent.ll
    M llvm/test/CodeGen/AMDGPU/memory-legalizer-local-system.ll
    M llvm/test/CodeGen/AMDGPU/memory-legalizer-local-volatile.ll
    M llvm/test/CodeGen/AMDGPU/memory-legalizer-local-workgroup.ll

  Log Message:
  -----------
  [AMDGPU] Implement GFX12 Memory Model (#98591)

- Emit GLOBAL_WB instructions
- Reflect synscope on instructions's `scope:` operand

Fixes SWDEV-468508
Fixes SWDEV-470735
Fixes SWDEV-468392
Fixes SWDEV-469622


  Commit: 762a47828ef6c19426e37e1ecae6768035a4ccac
      https://github.com/llvm/llvm-project/commit/762a47828ef6c19426e37e1ecae6768035a4ccac
  Author: cor3ntin <corentinjabot at gmail.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/Sema/Sema.h
    M clang/include/clang/Sema/SemaConcept.h
    M clang/lib/Sema/SemaConcept.cpp
    M clang/lib/Sema/SemaTemplateVariadic.cpp
    R clang/test/SemaCXX/cxx2c-fold-exprs.cpp
    M clang/www/cxx_status.html

  Log Message:
  -----------
  Revert "[Clang][C++26] Implement "Ordering of constraints involving fold expressions" (#99007)

Reverts llvm/llvm-project#98160

Breaks CI on some architectures


  Commit: a1ffabc403d4ce55ab2e665511b0b68a16d4850b
      https://github.com/llvm/llvm-project/commit/a1ffabc403d4ce55ab2e665511b0b68a16d4850b
  Author: ita-sc <109672931+ita-sc at users.noreply.github.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M lldb/include/lldb/Core/EmulateInstruction.h
    M lldb/source/Plugins/Instruction/RISCV/EmulateInstructionRISCV.cpp
    M lldb/source/Plugins/Instruction/RISCV/EmulateInstructionRISCV.h
    M lldb/source/Plugins/Process/Utility/NativeProcessSoftwareSingleStep.cpp
    A lldb/test/API/riscv/break-undecoded/Makefile
    A lldb/test/API/riscv/break-undecoded/TestBreakpointIllegal.py
    A lldb/test/API/riscv/break-undecoded/compressed.c
    A lldb/test/API/riscv/break-undecoded/main.c

  Log Message:
  -----------
  [lldb][riscv] Fix setting breakpoint for undecoded instruction  (#90075)

This patch adds an interface GetLastInstrSize to get information about
the size of last tried to be decoded instruction and uses it to set
software breakpoint if the memory can be decoded as instruction.

RISC-V architecture instruction format specifies the length of
instruction in first bits, so we can set a breakpoint for these cases.
This is needed as RISCV have a lot of extensions, that are not supported
by `EmulateInstructionRISCV`.


  Commit: c30ce8b9d33d1050ead549705702c1472b7a7d3f
      https://github.com/llvm/llvm-project/commit/c30ce8b9d33d1050ead549705702c1472b7a7d3f
  Author: Haojian Wu <hokein.wu at gmail.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M clang/lib/Sema/CheckExprLifetime.cpp

  Log Message:
  -----------
  [clang] Refactor: Introduce a new LifetimeKind for the assignment case, NFC (#99005)

The current implementation for the assignment case uses a combination of
the `LK_Extended` lifetime kind and the validity of `AEntity`, which is
somewhat messy and doesn't align well with the intended mental model.

This patch introduces a dedicated lifetime kind to handle the assignment
case, simplifying the implementation and improving clarity.


  Commit: de29b850f03092195bf21f3a39402adb4ed3c216
      https://github.com/llvm/llvm-project/commit/de29b850f03092195bf21f3a39402adb4ed3c216
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/lib/Analysis/InstructionSimplify.cpp
    M llvm/test/Transforms/InstSimplify/and-or-implied-cond.ll

  Log Message:
  -----------
  [InstSimplify] Fix simplifyAndOrWithICmpEq with undef refinement (#98898)

The final case in Simplify (where Res == Absorber and the predicate is
inverted) is not generally safe when the simplification is a refinement.
In particular, we may simplify assuming a specific value for undef, but
then chose a different one later.

However, it *is* safe to refine poison in this context, unlike in the
equivalent select folds. This is the reason why this fold did not use
AllowRefinement=false in the first place, and using that option would
introduce a lot of test regressions.

This patch takes the middle path of disabling undef refinements in
particular using the getWithoutUndef() SimplifyQuery option. However,
this option doesn't actually work in this case, because the problematic
fold is inside constant folding, and we currently don't propagate this
option all the way from InstSimplify over ConstantFolding to
ConstantFold. Work around this by explicitly checking for undef operands
in simplifyWithOpReplaced().

Finally, make sure that places where AllowRefinement=false also use
Q.getWithoutUndef(). I don't have a specific test case for this (the
original one does not work because we don't simplify selects with
constant condition in this mode in the first place) but this seems like
the correct thing to do to be conservative.

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


  Commit: 4469a1e587d5872bc3e10346d55afcb0dda44459
      https://github.com/llvm/llvm-project/commit/4469a1e587d5872bc3e10346d55afcb0dda44459
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-inductions-unusual-types.ll

  Log Message:
  -----------
  [LV] Add missing check lines in vector.ph in tests.

Match all instructions in vector.ph in sve-inductions-unusual-types.ll.

This should help to better show the impact of
https://github.com/llvm/llvm-project/pull/95305.


  Commit: 078cb7a4a07582a39ecd2f2fba9e9b1add9ebff3
      https://github.com/llvm/llvm-project/commit/078cb7a4a07582a39ecd2f2fba9e9b1add9ebff3
  Author: David Spickett <david.spickett at linaro.org>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M lldb/source/Plugins/Instruction/RISCV/EmulateInstructionRISCV.cpp

  Log Message:
  -----------
  [lldb][RISC-V] Remove unused variable

Added in a1ffabc403d4ce55ab2e665511b0b68a16d4850b.


  Commit: 2c13194eab28474089841903acd5790b8b1a559a
      https://github.com/llvm/llvm-project/commit/2c13194eab28474089841903acd5790b8b1a559a
  Author: Daniel Grumberg <dgrumberg at apple.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

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

  Log Message:
  -----------
  [clang][ExtractAPI][NFC] Remove some nullptr dereference problems (#98914)

A places try to get a NamedDecl's name using getName when it isn't a
simple identifier, migrate these areas to getNameAsString.

rdar://125315602


  Commit: fb2ab1c5f6ef6c003969f6b14d69b4295a1c710b
      https://github.com/llvm/llvm-project/commit/fb2ab1c5f6ef6c003969f6b14d69b4295a1c710b
  Author: Rodolfo Wottrich <rodolfo.wottrich at arm.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/test/tools/llvm-readobj/ELF/ARM/attribute-big-endian.test

  Log Message:
  -----------
  [llvm-readobj][ARM] Fix build attributes test's vendor name

`armabi` is not one of the recognized vendor names in the public Arm
ABI. Use `aeabi` instead.

https://github.com/ARM-software/abi-aa/blob/main/aaelf32/aaelf32.rst#registered-vendor-names


  Commit: 60ec6868ea02454480598832606019c8a3bf4316
      https://github.com/llvm/llvm-project/commit/60ec6868ea02454480598832606019c8a3bf4316
  Author: Tom Eccles <tom.eccles at arm.com>
  Date:   2024-07-16 (Tue, 16 Jul 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/second.f90

  Log Message:
  -----------
  [flang] Implement SECOND intrinsic (#98881)

The SECOND intrinsic is a gnu extension providing an alias for CPU_TIME:
https://gcc.gnu.org/onlinedocs/gfortran/SECOND.html

This cannot be implemented as a straightforward alias because there is
both a function and a subroutine form.


  Commit: 977cb5d1cb69dd83d762eeda156d238ea60a2aed
      https://github.com/llvm/llvm-project/commit/977cb5d1cb69dd83d762eeda156d238ea60a2aed
  Author: Kiran Chandramohan <kiran.chandramohan at arm.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M flang/lib/Semantics/check-omp-structure.cpp
    M flang/lib/Semantics/check-omp-structure.h
    M flang/test/Semantics/OpenMP/clause-validity01.f90
    M flang/test/Semantics/OpenMP/do-collapse.f90
    M flang/test/Semantics/OpenMP/do09.f90

  Log Message:
  -----------
  [Flang][OpenMP] Restrict certain loops not allowed in associated loops (#91818)

Extends the OmpCycleAndExitChecker to check that associated loops of a
loop construct are not DO WHILE or DO without control.

OpenMP 5.0 standard clearly mentions this restriction. Later standards
enforce this through the definition of associated loops and canonical
loop forms.
https://www.openmp.org/spec-html/5.0/openmpsu41.html

Fixes #81949


  Commit: d94ed83a9e7c0f20623899ad19f90d383760cb68
      https://github.com/llvm/llvm-project/commit/d94ed83a9e7c0f20623899ad19f90d383760cb68
  Author: Sander de Smalen <sander.desmalen at arm.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
    M llvm/test/Analysis/CostModel/AArch64/no-sve-no-neon.ll

  Log Message:
  -----------
  [AArch64] Fix assertion failure in getCastInstrCost

We should not call `getVectorElementType` on the result MVT from
`getTypeLegalizationCost` when we don't if the legal type is a
vector. This is the case when the type needs to be legalized
using scalarization.


  Commit: 862715ea813d8ffa73050ada17567b45c41a1023
      https://github.com/llvm/llvm-project/commit/862715ea813d8ffa73050ada17567b45c41a1023
  Author: Younan Zhang <zyn7109 at gmail.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/Sema/SemaExpr.cpp
    M clang/test/SemaTemplate/instantiate-local-class.cpp

  Log Message:
  -----------
  Revert "[Clang] Instantiate local constexpr functions eagerly (#95660)" (#98991)

Unfortunately, #95660 has caused a regression in DeduceReturnType(),
where some of the local recursive lambdas are getting incorrectly rejected.

This reverts commit 5548ea34341e9d0ae645719c34b466ca3b9eaa5a. Also, this
adds an offending case to the test.

Closes #98526


  Commit: d0d61a7e4c944defad2292ced385baab734356a8
      https://github.com/llvm/llvm-project/commit/d0d61a7e4c944defad2292ced385baab734356a8
  Author: Pavel Labath <pavel at labath.sk>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/include/llvm/DebugInfo/DWARF/DWARFFormValue.h
    M llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp
    M llvm/lib/DWARFLinker/Parallel/DWARFLinkerCompileUnit.cpp
    M llvm/lib/DebugInfo/DWARF/DWARFDie.cpp
    M llvm/lib/DebugInfo/DWARF/DWARFFormValue.cpp
    M llvm/lib/DebugInfo/DWARF/DWARFVerifier.cpp
    M llvm/lib/DebugInfo/LogicalView/Readers/LVDWARFReader.cpp
    M llvm/unittests/DebugInfo/DWARF/DWARFDebugInfoTest.cpp

  Log Message:
  -----------
  Split DWARFFormValue::getReference into four functions (#98905)

The result of the function cannot be correctly interpreted without
knowing the precise form type (a type signature needs to be looked up
very differently from a supplementary debug info reference). The
function sort of worked because the two reference types (unit-relative
and section-relative) that can be handled uniformly are also the most
common types of references, but this setup made it easy to write code
which does not support other kinds of reference (and if one tried to
support them, the result didn't look pretty --
https://github.com/llvm/llvm-project/pull/97423/files#r1676217081).

The split is based on the reference type classification from DWARFv5
(Section 7.5.5 Classes and Forms), and it should enable uniform (if
slightly more verbose) hadling. Note that this only affects users which
want more control of how (or if) the references are resolved. Users
which just want to access the referenced DIE can use the higher level
API (DWARFDie::GetAttributeValueAsReferencedDie) which returns (or will
return after #97423 is merged) the correct die for all reference types
(except for supplementary references, which we don't support right now).


  Commit: 2ea4a03c0f1be6dd11428e4c6eb840b745116ca2
      https://github.com/llvm/llvm-project/commit/2ea4a03c0f1be6dd11428e4c6eb840b745116ca2
  Author: Kendal Harland <3987220+kendalharland at users.noreply.github.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M lldb/test/API/tools/lldb-dap/stepInTargets/TestDAP_stepInTargets.py
    M lldb/test/API/tools/lldb-dap/stepInTargets/main.cpp

  Log Message:
  -----------
  Fix test assertions in TestDAP_stepInTargets.py (#96687)

The strings this test is using seem to consistently fail to match
against the expected values when built & run targeting Windows amd64.
This PR updates them to the expected values.

To fix the test and avoid over-specifying for a specific platform, use
`assertIn(<target-substring>,...)` to see if we've got the correct
target label instead of comparing the demangler output for an exact
string match.

---------

Co-authored-by: kendal <kendal at thebrowser.company>


  Commit: cc97a0d34787e4c9151fa894531ad9d07486a6ae
      https://github.com/llvm/llvm-project/commit/cc97a0d34787e4c9151fa894531ad9d07486a6ae
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

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

  Log Message:
  -----------
  [LV] Use getBestPlan when interleaving only. (NFCI)

Use the getBestPlan() utility added in b841e2eca3 to also get the
scalar plan when interleaving only.


  Commit: 8afb6432c239a3f5502c5014ebab6b372d7b3d50
      https://github.com/llvm/llvm-project/commit/8afb6432c239a3f5502c5014ebab6b372d7b3d50
  Author: DianQK <dianqk at dianqk.net>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
    A llvm/test/Transforms/PhaseOrdering/pr98799-inline-simplifycfg-ub.ll
    M llvm/test/Transforms/SimplifyCFG/UnreachableEliminate.ll

  Log Message:
  -----------
  [SimplifyCFG] Select the first instruction that we can handle in `passingValueIsAlwaysUndefined` (#98802)

Fixes #98799.


  Commit: bf5d5fed8d4cd7c36100af02664c2bdab912db9b
      https://github.com/llvm/llvm-project/commit/bf5d5fed8d4cd7c36100af02664c2bdab912db9b
  Author: Adrian Kuegel <akuegel at google.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

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

  Log Message:
  -----------
  [lldb][Bazel] Add missing dependency.


  Commit: c8783991c7f6446b9c530e1396728e71b6acd998
      https://github.com/llvm/llvm-project/commit/c8783991c7f6446b9c530e1396728e71b6acd998
  Author: Benji Smith <6193112+Benjins at users.noreply.github.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/docs/ReleaseNotes.rst
    M llvm/include/llvm-c/Core.h
    M llvm/lib/IR/Core.cpp
    M llvm/test/Bindings/llvm-c/echo.ll
    M llvm/tools/llvm-c-test/echo.cpp

  Log Message:
  -----------
  [C API] Add accessors for new no-wrap flags on GEP instructions (#97970)

Previously, only the inbounds flag was accessible via the C API. This
adds support for any no-wrap related flags (currently nuw and nusw).


  Commit: c05126bdfc3b02daa37d11056fa43db1a6cdef69
      https://github.com/llvm/llvm-project/commit/c05126bdfc3b02daa37d11056fa43db1a6cdef69
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M lld/COFF/Driver.cpp
    M lld/ELF/Driver.cpp
    M lld/wasm/Driver.cpp
    M llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
    A llvm/include/llvm/CodeGen/RuntimeLibcallUtil.h
    R llvm/include/llvm/CodeGen/RuntimeLibcalls.h
    M llvm/include/llvm/CodeGen/TargetLowering.h
    A llvm/include/llvm/IR/RuntimeLibcalls.h
    M llvm/include/llvm/LTO/LTO.h
    M llvm/lib/CodeGen/AtomicExpandPass.cpp
    M llvm/lib/CodeGen/DwarfEHPrepare.cpp
    M llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
    M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    M llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
    M llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp
    M llvm/lib/CodeGen/TargetLoweringBase.cpp
    M llvm/lib/IR/CMakeLists.txt
    A llvm/lib/IR/RuntimeLibcalls.cpp
    M llvm/lib/LTO/LTO.cpp
    M llvm/lib/Object/IRSymtab.cpp
    M llvm/lib/Target/AArch64/AArch64FastISel.cpp
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/lib/Target/ARM/ARMFastISel.cpp
    M llvm/lib/Target/ARM/ARMISelLowering.cpp
    M llvm/lib/Target/ARM/ARMLegalizerInfo.h
    M llvm/lib/Target/ARM/ARMSelectionDAGInfo.h
    M llvm/lib/Target/Hexagon/HexagonISelLowering.cpp
    M llvm/lib/Target/Lanai/LanaiISelLowering.cpp
    M llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
    M llvm/lib/Target/Mips/MipsISelLowering.cpp
    M llvm/lib/Target/PowerPC/PPCISelLowering.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.h
    M llvm/tools/lto/lto.cpp

  Log Message:
  -----------
  [LLVM][LTO] Factor out RTLib calls and allow them to be dropped (#98512)

Summary:
The LTO pass and LLD linker have logic in them that forces extraction
and prevent internalization of needed runtime calls. However, these
currently take all RTLibcalls into account, even if the target does not
support them. The target opts-out of a libcall if it sets its name to
nullptr. This patch pulls this logic out into a class in the header so
that LTO / lld can use it to determine if a symbol actually needs to be
kept.

This is important for targets like AMDGPU that want to be able to use
`lld` to perform the final link step, but does not want the overhead of
uncalled functions. (This adds like a second to the link time trivially)


  Commit: 4abdb85ef2b659a0ee919a4509dd6a82901351b5
      https://github.com/llvm/llvm-project/commit/4abdb85ef2b659a0ee919a4509dd6a82901351b5
  Author: Jeremy Morse <jeremy.morse at sony.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

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

  Log Message:
  -----------
  [SSAUpdater] Avoid un-necessary SmallVector stores (#97820)

The default template for the generic IDF calculator fetching
block-children will, by default:
 * Fetch the children range from the relevant `GraphTraits`,
 * Store all child nodes in a `SmallVector`,
 * Return that `SmallVector` into the IDF calculator.

The only place this `SmallVector` is used is in a for-range loop... thus
there's no reason why we can't just iterate over the child range from
`GraphTraits`, instead of storing all the nodes locally then iterating
over the local copy. (If the children of a node change during IDF
calculation, everything is broken anyway).

This yields a 0.14% debug-info build performance improvement on the
compile time tracker, as InstrRefBasedLDV uses the SSA updater
intensively on all functions.


  Commit: 9dab91247d5c40607617f13b8fe5056111dd3045
      https://github.com/llvm/llvm-project/commit/9dab91247d5c40607617f13b8fe5056111dd3045
  Author: Pavel Labath <pavel at labath.sk>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

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

  Log Message:
  -----------
  Fix bolt for #98905


  Commit: 4348f32ec609540e642be1be263d6ad2b60a90fd
      https://github.com/llvm/llvm-project/commit/4348f32ec609540e642be1be263d6ad2b60a90fd
  Author: Egor Zhdan <e_zhdan at apple.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M clang/include/clang/APINotes/Types.h

  Log Message:
  -----------
  [APINotes] Remove unused API

This method is not actually used anywhere.


  Commit: aa94a43178e1e1fa4dbe7ee802d46623667067ae
      https://github.com/llvm/llvm-project/commit/aa94a43178e1e1fa4dbe7ee802d46623667067ae
  Author: Adrian Kuegel <akuegel at google.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

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

  Log Message:
  -----------
  [llvm][Bazel] Adapt to 4eb30cfb3474e3770b465cdb39db3b7f6404c3ef


  Commit: 46505b3cbfc5f48f28431b9141085c5d71ddf1c4
      https://github.com/llvm/llvm-project/commit/46505b3cbfc5f48f28431b9141085c5d71ddf1c4
  Author: RicoAfoat <51285519+RicoAfoat at users.noreply.github.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
    M llvm/test/CodeGen/X86/inline-asm-memop.ll

  Log Message:
  -----------
  [SelectionDAG] use HandleSDNode instead of SDValue during SelectInlineAsmMemoryOperands (#85081)

SelectInlineAsmMemoryOperands - change the vector of SDValue into a list of SDNodeHandle. Fixes issues where x86 might call replaceAllUses when matching address.

Fixes https://github.com/llvm/llvm-project/issues/82431 - see https://github.com/llvm/llvm-project/issues/82431 for more information.


  Commit: 49d53a206faf5fb398aba5c8c1d21b3ec111fe39
      https://github.com/llvm/llvm-project/commit/49d53a206faf5fb398aba5c8c1d21b3ec111fe39
  Author: David Spickett <david.spickett at linaro.org>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/docs/MyFirstTypoFix.rst

  Log Message:
  -----------
  [llvm][Docs] Add explanatory note to MyFirstTypoFix intro

To make it 100% clear that the changes are an example and the guide
should later be used with the reader's own changes to submit an
actual PR.


  Commit: 5b310a1c3c5aabae325934a6475e93ea8b71cdc2
      https://github.com/llvm/llvm-project/commit/5b310a1c3c5aabae325934a6475e93ea8b71cdc2
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

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

  Log Message:
  -----------
  [clang][Interp] Ignore lambda static invoker frames in backtraces

See comment. No test but this is neccessary for a later commit.


  Commit: 55483379e286a95c88a6a973a8e0f02dc5f1fb05
      https://github.com/llvm/llvm-project/commit/55483379e286a95c88a6a973a8e0f02dc5f1fb05
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/test/Transforms/LoopVectorize/PowerPC/vplan-force-tail-with-evl.ll

  Log Message:
  -----------
  [VPlan] Update test to use CHECK variables.

Update test to avoid using hard-coded VPValue IDs.


  Commit: d4a89af5a8c52191797bed5ff7ff40a85435d3a0
      https://github.com/llvm/llvm-project/commit/d4a89af5a8c52191797bed5ff7ff40a85435d3a0
  Author: David Spickett <david.spickett at linaro.org>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M lldb/docs/index.rst
    A lldb/docs/resources/qemu-testing.rst
    R lldb/docs/use/qemu-testing.rst

  Log Message:
  -----------
  [lldb][Docs] Move QEMU testing page into the developing lldb section


  Commit: a6d2da8b9d7be19816dd4c76b02016c19618c1be
      https://github.com/llvm/llvm-project/commit/a6d2da8b9d7be19816dd4c76b02016c19618c1be
  Author: lntue <35648136+lntue at users.noreply.github.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M libc/cmake/modules/LLVMLibCCompileOptionRules.cmake
    M libc/config/baremetal/config.json
    M libc/config/config.json
    M libc/docs/configure.rst
    M libc/src/stdlib/CMakeLists.txt
    A libc/src/stdlib/heap_sort.h
    M libc/src/stdlib/qsort.cpp
    A libc/src/stdlib/qsort_data.h
    M libc/src/stdlib/qsort_r.cpp
    M libc/src/stdlib/qsort_util.h
    A libc/src/stdlib/quick_sort.h
    M libc/test/src/stdlib/CMakeLists.txt
    A libc/test/src/stdlib/SortingTest.h
    A libc/test/src/stdlib/heap_sort_test.cpp
    M libc/test/src/stdlib/qsort_test.cpp
    A libc/test/src/stdlib/quick_sort_test.cpp
    M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
    M utils/bazel/llvm-project-overlay/libc/test/src/stdlib/BUILD.bazel

  Log Message:
  -----------
  [libc][stdlib] Implement heap sort. (#98582)


  Commit: c7aac38c29f564bc48f7cfb71d3b3b8b482c873b
      https://github.com/llvm/llvm-project/commit/c7aac38c29f564bc48f7cfb71d3b3b8b482c873b
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/AArch64/extractelements-to-shuffle.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/remarks_cmp_sel_min_max.ll
    M llvm/test/Transforms/SLPVectorizer/X86/partail.ll

  Log Message:
  -----------
  [SLP]Correctly detect minnum/maxnum patterns for select/cmp operations on floats.

The patch enables detection of minnum/maxnum patterns for float point
instruction, represented as select/cmp. Also, enables better cost
estimation for integer min/max patterns since the compiler starts
to estimate the scalars separately.

Reviewers: nikic, RKSimon

Reviewed By: RKSimon

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


  Commit: dba2e66e18cc82863542d2ba2fde52b9024df307
      https://github.com/llvm/llvm-project/commit/dba2e66e18cc82863542d2ba2fde52b9024df307
  Author: Mariya Podchishchaeva <mariya.podchishchaeva at intel.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M clang/include/clang/Basic/TokenKinds.def
    M clang/include/clang/Basic/TokenKinds.h
    M clang/include/clang/Lex/Preprocessor.h
    M clang/include/clang/Parse/Parser.h
    M clang/lib/Parse/ParseExpr.cpp
    M clang/lib/Parse/ParseTemplate.cpp
    M clang/lib/Sema/SemaExpr.cpp
    M clang/test/Preprocessor/embed_codegen.cpp
    M clang/test/Preprocessor/embed_constexpr.cpp
    M clang/test/Preprocessor/embed_weird.cpp

  Log Message:
  -----------
  [clang] Inject tokens containing #embed back into token stream (#97274)

Instead of playing "whack a mole" with places where #embed should be
expanded as comma-separated list, just inject each byte as a token back
into the stream, separated by commas.


  Commit: 0eebb48fcfbcb93da123e39ef61b22dc80c9ec0d
      https://github.com/llvm/llvm-project/commit/0eebb48fcfbcb93da123e39ef61b22dc80c9ec0d
  Author: Nikolas Klauser <nikolasklauser at berlin.de>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M libcxx/include/CMakeLists.txt
    M libcxx/include/__type_traits/invoke.h
    R libcxx/include/__type_traits/is_member_function_pointer.h
    R libcxx/include/__type_traits/is_member_object_pointer.h
    M libcxx/include/__type_traits/is_member_pointer.h
    M libcxx/include/module.modulemap
    M libcxx/include/type_traits

  Log Message:
  -----------
  [libc++] Merge is_member{,_object,_function}_pointer.h (#98727)

The implementations for these traits have been simplified quite a bit,
since we have builtins available for them now.


  Commit: 30cc12cd818d4b52914d1033d1ed79af4a0f78fa
      https://github.com/llvm/llvm-project/commit/30cc12cd818d4b52914d1033d1ed79af4a0f78fa
  Author: Nikolas Klauser <nikolasklauser at berlin.de>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M libcxx/include/__type_traits/is_fundamental.h
    M libcxx/include/__type_traits/is_null_pointer.h
    M libcxx/include/__type_traits/is_scalar.h

  Log Message:
  -----------
  [libc++] Simplify the implementation of is_null_pointer a bit (#98728)


  Commit: 7e2b5e233a49f1c99cf9a3696ca4322ff989a386
      https://github.com/llvm/llvm-project/commit/7e2b5e233a49f1c99cf9a3696ca4322ff989a386
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

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

  Log Message:
  -----------
  [LV] Move reportVectorizationInfo to LoopVectorize.cpp (NFC)

The function is only used in LoopVectorize.cpp, no need to define it in
header.


  Commit: 3bf83e3866237cd35c9828880241f5863d625ed9
      https://github.com/llvm/llvm-project/commit/3bf83e3866237cd35c9828880241f5863d625ed9
  Author: Hari Limaye <hari.limaye at arm.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
    A llvm/test/Transforms/LoopIdiom/AArch64/ctlz.ll

  Log Message:
  -----------
  [LoopIdiom] Reland: Support 'shift until less-than' idiom #95002 (#98298)

The original patch failed to handle the case where the loopback
condition compared against a constant exceeding 64 bit unsigned range -
which caused a buildbot failure.

This PR fixes this and relands the original PR #95002.

The current loop idiom code for recognising and inserting a CTLZ
intrinsic does not support loops where the loopback control is based on
an unsigned less-than condition. This patch adds support for recognising
these loops and inserting a CTLZ intrinsic.

Fixes the missed optimization cases in #51064.

---------

Co-authored-by: David Sherwood <david.sherwood at arm.com>


  Commit: d1bbae97f5d09e1de2e1e07b855e33cce533d7fa
      https://github.com/llvm/llvm-project/commit/d1bbae97f5d09e1de2e1e07b855e33cce533d7fa
  Author: Nico Weber <thakis at chromium.org>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/utils/gn/secondary/lldb/include/lldb/Host/BUILD.gn

  Log Message:
  -----------
  Revert "[gn] port b9496a74eb40"

This reverts commit 14fb6162a97e60a8aefcb0702a713f7a50205fce.
b9496a74eb40 got reverted in 27b2f4f861b8.


  Commit: c3540d0b6bbde69e7e9de00c3c289d5fd6d02a49
      https://github.com/llvm/llvm-project/commit/c3540d0b6bbde69e7e9de00c3c289d5fd6d02a49
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/AArch64/extractelements-to-shuffle.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/remarks_cmp_sel_min_max.ll
    M llvm/test/Transforms/SLPVectorizer/X86/partail.ll

  Log Message:
  -----------
  Revert "[SLP]Correctly detect minnum/maxnum patterns for select/cmp operations on floats."

This reverts commit c7aac38c29f564bc48f7cfb71d3b3b8b482c873b to fix
crashes reavealed by the buildbot in https://lab.llvm.org/buildbot/#/builders/168/builds/1104.


  Commit: e869549e01b6e5ad87075e127fb07bf568635b1b
      https://github.com/llvm/llvm-project/commit/e869549e01b6e5ad87075e127fb07bf568635b1b
  Author: Nico Weber <thakis at chromium.org>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

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

  Log Message:
  -----------
  [gn] port bddab518db003f (X86AsmParser.cpp uses X86GenInstrMapping.inc)


  Commit: 85cedd8e59be5eebad6292aee3b053f31afc8977
      https://github.com/llvm/llvm-project/commit/85cedd8e59be5eebad6292aee3b053f31afc8977
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M clang/lib/AST/Interp/ByteCodeEmitter.cpp
    M clang/lib/AST/Interp/Context.cpp
    M clang/test/AST/Interp/lambda.cpp

  Log Message:
  -----------
  [clang][Interp] Ignore incomplete records when visiting lambdas

We need them to be complete so we have knowledge about all the
lambda captures.


  Commit: 00f83a85c754e8b465e94470e733292cdbfbfe71
      https://github.com/llvm/llvm-project/commit/00f83a85c754e8b465e94470e733292cdbfbfe71
  Author: Nico Weber <thakis at chromium.org>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/utils/gn/secondary/lldb/source/Symbol/BUILD.gn

  Log Message:
  -----------
  [gn] port 8a27ef676e3c6 (lldbSymbol now includes clang headers)


  Commit: 522fd53838d577add8c19b5eccccae756fd27899
      https://github.com/llvm/llvm-project/commit/522fd53838d577add8c19b5eccccae756fd27899
  Author: Alex Bradbury <asb at igalia.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/docs/LangRef.rst
    M llvm/include/llvm/IR/IntrinsicInst.h
    M llvm/include/llvm/IR/Intrinsics.td
    M llvm/lib/Analysis/Lint.cpp
    M llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp
    A llvm/test/Transforms/PreISelIntrinsicLowering/X86/memcpy-inline-non-constant-len.ll
    M llvm/test/Verifier/intrinsic-immarg.ll

  Log Message:
  -----------
  [Intrinsics][PreISelInstrinsicLowering] llvm.memcpy.inline length no longer needs to be constant (#98281)

Following on from the discussion in

https://discourse.llvm.org/t/rfc-introducing-an-llvm-memset-pattern-inline-intrinsic/79496
and the equivalent change for llvm.memset.inline (#95397), this removes
the requirement that the length of llvm.memcpy.inline is constant.
PreISelInstrinsicLowering will expand llvm.memcpy.inline with
non-constant lengths, while the codegen path for constant lengths is
left unaltered.


  Commit: 139df36d89bd731b5180be3cac2b58d4b2082368
      https://github.com/llvm/llvm-project/commit/139df36d89bd731b5180be3cac2b58d4b2082368
  Author: Vladislav Dzhidzhoev <vdzhidzhoev at accesssoftek.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M lldb/source/Commands/CommandObjectProcess.cpp
    M lldb/test/API/functionalities/load_unload/TestLoadUnload.py

  Log Message:
  -----------
  [LLDB] Make 'process load' take remote os path delimiter into account (#98690)

Currently, if we execute 'process load' with remote debugging, it uses
the host's path delimiter to look up files on a target machine. If we
run remote debugging of Linux target on Windows and execute "process
load C:\foo\a.so", lldb-server tries to load \foo\a.so instead of
/foo/a.so on the remote.

It affects several API tests.

This commit fixes that error. Also, it contains minor fixes for
TestLoadUnload.py for testing on Windows host and Linux target.


  Commit: 473ed8e722df3b22f39db52df059f9d00ac63e1f
      https://github.com/llvm/llvm-project/commit/473ed8e722df3b22f39db52df059f9d00ac63e1f
  Author: Nico Weber <thakis at chromium.org>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/utils/gn/secondary/lldb/source/Symbol/BUILD.gn
    M llvm/utils/gn/secondary/lldb/source/Target/BUILD.gn

  Log Message:
  -----------
  [gn] port 8a27ef676e3c6 better

I added this to the wrong target.
Reverts 00f83a85c754e and adds it to the right target instead.


  Commit: ac4b6b662630cd4d3bf6929f2b39ea203c0054a1
      https://github.com/llvm/llvm-project/commit/ac4b6b662630cd4d3bf6929f2b39ea203c0054a1
  Author: Alex Bradbury <asb at igalia.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/docs/LangRef.rst
    M llvm/include/llvm/IR/IntrinsicInst.h
    M llvm/include/llvm/IR/Intrinsics.td
    M llvm/lib/Analysis/Lint.cpp
    M llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp
    R llvm/test/Transforms/PreISelIntrinsicLowering/X86/memcpy-inline-non-constant-len.ll
    M llvm/test/Verifier/intrinsic-immarg.ll

  Log Message:
  -----------
  Revert "[Intrinsics][PreISelInstrinsicLowering] llvm.memcpy.inline length no longer needs to be constant (#98281)"

This reverts commit 522fd53838d577add8c19b5eccccae756fd27899 while
unexpected mlir failures are investigated and resolved.


  Commit: 6dc8c2dada4b17f3a70ca9693411d4a6dc940c5b
      https://github.com/llvm/llvm-project/commit/6dc8c2dada4b17f3a70ca9693411d4a6dc940c5b
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPUResourceUsageAnalysis.cpp
    A llvm/test/CodeGen/AMDGPU/global-alias.ll

  Log Message:
  -----------
  [AMDGPU] Fix resource analysis crash on alias-to-alias function (#99034)

Summary:
Previously this code only looked through a single level of aliases to
find the underlying function. This patch changes it to continue until it
finds the end. Aliases that form a cycle are illegal IR, so we shouldn't
need to worry about infinite loops.

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


  Commit: 55c8fd9e0b3ab1d2bb7ca4a7db7d6cf2aa83e5db
      https://github.com/llvm/llvm-project/commit/55c8fd9e0b3ab1d2bb7ca4a7db7d6cf2aa83e5db
  Author: Youngsuk Kim <joseph942010 at gmail.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/Serialization/ASTReaderStmt.cpp

  Log Message:
  -----------
  [clang] Prevent dangling StringRefs (#98699)

Fix locations where dangling StringRefs are created.

* `ConstraintSatisfaction::SubstitutionDiagnostic`: typedef of
`std::pair<SourceLocation, StringRef>`

* `concepts::Requirement::SubstitutionDiagnostic`: struct whose 1st and
3rd data members are `StringRef`s

Fixes #98667


  Commit: fdf94e16323e46d31a951a0910103b8c0db74942
      https://github.com/llvm/llvm-project/commit/fdf94e16323e46d31a951a0910103b8c0db74942
  Author: Alex Bradbury <asb at igalia.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/docs/LangRef.rst
    M llvm/include/llvm/IR/IntrinsicInst.h
    M llvm/include/llvm/IR/Intrinsics.td
    M llvm/lib/Analysis/Lint.cpp
    M llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp
    A llvm/test/Transforms/PreISelIntrinsicLowering/X86/memcpy-inline-non-constant-len.ll
    M llvm/test/Verifier/intrinsic-immarg.ll
    M mlir/test/Target/LLVMIR/llvmir-intrinsics.mlir

  Log Message:
  -----------
  Reapply "[Intrinsics][PreISelInstrinsicLowering] llvm.memcpy.inline length no longer needs to be constant (#98281)"

This reverts commit ac4b6b662630cd4d3bf6929f2b39ea203c0054a1.

A test change was missing for
mlir/test/Target/LLVMIR/llvmir-intrinsics.mlir in the initial commit.


  Commit: 009e176b880f660e7b01dda1f665a1b221375fd8
      https://github.com/llvm/llvm-project/commit/009e176b880f660e7b01dda1f665a1b221375fd8
  Author: Rainer Orth <ro at gcc.gnu.org>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp

  Log Message:
  -----------
  [sanitizer_common] Fix TgKill on Solaris (#98000)

While working on safestack on Solaris, I noticed that the `TgKill`
implementation is wrong here: `TgKill` is supposed to return `-1` on
error, while `thr_kill` returns `errno` instead. This patch compensates
for that.

This went unnoticed so far since `TgKill` has been unused.

Tested on `amd64-pc-solaris2.11` and `sparcv9-sun-solaris2.11` together
with a subsequent patch to make safestack actually work on Solaris.


  Commit: ddc7999d896efcabac7a9be45f832721e9636802
      https://github.com/llvm/llvm-project/commit/ddc7999d896efcabac7a9be45f832721e9636802
  Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/utils/gn/secondary/libcxx/include/BUILD.gn

  Log Message:
  -----------
  [gn build] Port 0eebb48fcfbc


  Commit: ab91e4097d49a4e22eb1fbcd3289e546a2c2c3db
      https://github.com/llvm/llvm-project/commit/ab91e4097d49a4e22eb1fbcd3289e546a2c2c3db
  Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/utils/gn/secondary/lldb/source/Target/BUILD.gn

  Log Message:
  -----------
  [gn build] Port 8a27ef676e3c


  Commit: c7961538ff5c73ad03cbf2470e56cdc10cedc83b
      https://github.com/llvm/llvm-project/commit/c7961538ff5c73ad03cbf2470e56cdc10cedc83b
  Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

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

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


  Commit: d05949796531c9a0a6639438159638a5825ad059
      https://github.com/llvm/llvm-project/commit/d05949796531c9a0a6639438159638a5825ad059
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp

  Log Message:
  -----------
  [AMDGPU] clang-tidy: use lambda instead of std::bind. NFC.


  Commit: 91722a4a13d808772edcdd5caad66a598a659655
      https://github.com/llvm/llvm-project/commit/91722a4a13d808772edcdd5caad66a598a659655
  Author: Ayke <aykevanlaethem at gmail.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/lib/Transforms/Scalar/LoopRotation.cpp
    A llvm/test/Transforms/LoopRotate/minsize-disable.ll

  Log Message:
  -----------
  [LoopRotate] Don't rotate loops when the minsize attribute is present

The main use for this patch is LTO. It is not (yet?) possible to set the
size level (-Os, -Oz) in the linker, which means loops are still rotated
even if -Oz is specified on the command line. Therefore, look at the
function attribute instead of only at the size level to determine
whether to rotate loops for a given function.

For discussion, see: https://reviews.llvm.org/D119342

An older version of this patch was already approved at
https://reviews.llvm.org/D119342 but I never got around to committing
it. The code changed so I had to make some minor updates to this patch
and in the meantime I also lost commit access because I wasn't really
using it. So here is an updated patch.


  Commit: b115edc86c3d6d4e1ebc6546000117a77cf80eab
      https://github.com/llvm/llvm-project/commit/b115edc86c3d6d4e1ebc6546000117a77cf80eab
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/GCNIterativeScheduler.cpp

  Log Message:
  -----------
  [AMDGPU] Use std::is_same_v. NFC.


  Commit: 16dd75b41c511d92f3f1947ccbb61b8ad66bbcd0
      https://github.com/llvm/llvm-project/commit/16dd75b41c511d92f3f1947ccbb61b8ad66bbcd0
  Author: Fabian Mora <fmora.dev at gmail.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

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

  Log Message:
  -----------
  [mlir][ROCDL] Construct AMDGCN ISA control variable explicitly (#98912)

This patch constructs the AMDGCN ISA control variable explicitly instead
of linking against the library shipped with ROCm. This change prevents
issues arising from the order in which the AMDGCN libraries are linked.


  Commit: 11a9ab125737e4b43a98073ccf238cef9c8501b9
      https://github.com/llvm/llvm-project/commit/11a9ab125737e4b43a98073ccf238cef9c8501b9
  Author: Eisuke Kawashima <e.kawaschima+github at gmail.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M openmp/libompd/gdb-plugin/ompd/ompd.py
    M openmp/tools/archer/tests/lit.cfg

  Log Message:
  -----------
  [OpenMP] Fix comparison to True/False in openmp/**.py (#94041)

from PEP8
(https://peps.python.org/pep-0008/#programming-recommendations):

> Comparisons to singletons like None should always be done with is or
is not, never the equality operators.

Co-authored-by: Eisuke Kawashima <e-kwsm at users.noreply.github.com>


  Commit: cf00bb007428124a0d5af596300407ec11580fb2
      https://github.com/llvm/llvm-project/commit/cf00bb007428124a0d5af596300407ec11580fb2
  Author: Eisuke Kawashima <e.kawaschima+github at gmail.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M openmp/libompd/gdb-plugin/ompd/ompd_callbacks.py

  Log Message:
  -----------
  [OpenMP] Fix comparison to None in openmp/**.py (#94020)

from PEP8
(https://peps.python.org/pep-0008/#programming-recommendations):

> Comparisons to singletons like None should always be done with is or
is not, never the equality operators.

Co-authored-by: Eisuke Kawashima <e-kwsm at users.noreply.github.com>


  Commit: c1fa62ba74ad8ad52bdcba2ec23ba12ac1e45242
      https://github.com/llvm/llvm-project/commit/c1fa62ba74ad8ad52bdcba2ec23ba12ac1e45242
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/MCA/AMDGPUCustomBehaviour.cpp
    M llvm/lib/Target/AMDGPU/SIMachineScheduler.cpp

  Log Message:
  -----------
  [AMDGPU] Sort #includes. NFC.


  Commit: 38a1dec30bb94c68b3010da3bbf7ab986dd5d69b
      https://github.com/llvm/llvm-project/commit/38a1dec30bb94c68b3010da3bbf7ab986dd5d69b
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp

  Log Message:
  -----------
  [AMDGPU] Use std::min with initializer list. NFC.


  Commit: 6bba44e8dcf5bb73e6e82068b194b14aa7d1880e
      https://github.com/llvm/llvm-project/commit/6bba44e8dcf5bb73e6e82068b194b14aa7d1880e
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPULibFunc.cpp
    M llvm/lib/Target/AMDGPU/AMDGPULowerBufferFatPointers.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUMachineFunction.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUPerfHintAnalysis.cpp
    M llvm/lib/Target/AMDGPU/SIFixSGPRCopies.cpp

  Log Message:
  -----------
  [AMDGPU] Use member initializers. NFC.


  Commit: ff81bbede4f3a28d285106a5a3f5d0980608dd47
      https://github.com/llvm/llvm-project/commit/ff81bbede4f3a28d285106a5a3f5d0980608dd47
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.cpp
    M llvm/lib/Target/AMDGPU/MCA/AMDGPUCustomBehaviour.cpp
    M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
    M llvm/lib/Target/AMDGPU/SIMachineScheduler.cpp
    M llvm/lib/Target/AMDGPU/Utils/AMDGPUAsmUtils.cpp
    M llvm/lib/Target/AMDGPU/Utils/AMDGPUMemoryUtils.cpp

  Log Message:
  -----------
  [AMDGPU] Concatenate nested namespaces. NFC.


  Commit: 63a1242ae3f1ebc13831ac71cd19aa0cf98278dc
      https://github.com/llvm/llvm-project/commit/63a1242ae3f1ebc13831ac71cd19aa0cf98278dc
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPULibCalls.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUPrintfRuntimeBinding.cpp
    M llvm/lib/Target/AMDGPU/GCNCreateVOPD.cpp
    M llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp

  Log Message:
  -----------
  [AMDGPU] clang-tidy: define trivial constructors with = default. NFC.


  Commit: 78dea4c1ea77ba683c720d2a2c0f32d03989f8cc
      https://github.com/llvm/llvm-project/commit/78dea4c1ea77ba683c720d2a2c0f32d03989f8cc
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPUIGroupLP.cpp

  Log Message:
  -----------
  [AMDGPU] Use bool literals for bools. NFC.


  Commit: b22fa9093bb1a7be2de4e9d7073c94d3ecb69987
      https://github.com/llvm/llvm-project/commit/b22fa9093bb1a7be2de4e9d7073c94d3ecb69987
  Author: mskamp <msk at posteo.org>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/include/llvm/Analysis/VectorUtils.h
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/lib/Analysis/VectorUtils.cpp
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    A llvm/test/Analysis/ValueTracking/knownbits-x86-hadd-hsub.ll
    A llvm/test/CodeGen/X86/knownbits-hadd-hsub.ll
    M llvm/test/CodeGen/X86/pr53247.ll
    M llvm/unittests/Analysis/VectorUtilsTest.cpp

  Log Message:
  -----------
  [ValueTracking][X86] Compute KnownBits for phadd/phsub (#92429)

Add KnownBits computations to ValueTracking and X86 DAG lowering.
    
These instructions add/subtract adjacent vector elements in their operands. Example: phadd [X1, X2] [Y1, Y2] = [X1 + X2, Y1 + Y2]. This means that, in this example, we can compute the KnownBits of the operation by computing the KnownBits of [X1, X2] + [X1, X2] and [Y1, Y2] + [Y1, Y2] and intersecting the results. This approach also generalizes to all x86 vector types.
    
There are also the operations phadd.sw and phsub.sw, which perform saturating addition/subtraction. Use sadd_sat and ssub_sat to compute the KnownBits of these operations.
    
Also adjust the existing test case pr53247.ll because it can be transformed to a constant using the new KnownBits computation.
    
Fixes #82516.


  Commit: 7a72856af8b30f50e546b8368596fdc5f44cbca9
      https://github.com/llvm/llvm-project/commit/7a72856af8b30f50e546b8368596fdc5f44cbca9
  Author: Hansang Bae <hansang.bae at intel.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M openmp/runtime/src/include/omp-tools.h.var
    M openmp/runtime/src/kmp_barrier.cpp
    M openmp/runtime/src/kmp_runtime.cpp
    M openmp/runtime/src/kmp_wait_release.h
    M openmp/runtime/src/ompt-specific.cpp
    M openmp/runtime/test/ompt/callback.h
    M openmp/runtime/test/ompt/parallel/nested.c
    M openmp/runtime/test/ompt/parallel/nested_lwt.c
    M openmp/runtime/test/ompt/parallel/nested_serialized.c
    M openmp/runtime/test/ompt/parallel/nested_thread_num.c
    M openmp/runtime/test/ompt/parallel/no_thread_num_clause.c
    M openmp/runtime/test/ompt/parallel/normal.c
    M openmp/runtime/test/ompt/parallel/not_enough_threads.c
    M openmp/runtime/test/ompt/synchronization/barrier/explicit.c
    M openmp/runtime/test/ompt/synchronization/barrier/for_loop.c
    M openmp/runtime/test/ompt/synchronization/barrier/for_simd.c
    M openmp/runtime/test/ompt/synchronization/barrier/implicit_task_data.c
    M openmp/runtime/test/ompt/synchronization/barrier/parallel_region.c
    M openmp/runtime/test/ompt/synchronization/barrier/sections.c
    M openmp/runtime/test/ompt/synchronization/barrier/single.c
    M openmp/runtime/test/ompt/tasks/explicit_task.c
    M openmp/runtime/test/ompt/tasks/serialized.c
    M openmp/runtime/test/ompt/tasks/task_in_joinbarrier.c
    M openmp/runtime/test/ompt/tasks/untied_task.c
    M openmp/tools/multiplex/tests/custom_data_storage/custom_data_storage.c
    M openmp/tools/multiplex/tests/print/print.c

  Log Message:
  -----------
  [OpenMP] Use new OMPT state and sync kinds for barrier events (#95602)

This change makes the runtime use new OMPT state and sync kinds
introduced in OpenMP 5.1 in place of the deprecated implicit state and
sync kinds. Events from implicit barriers use different enumerators for
workshare, parallel, and teams.


  Commit: fdb669b0dc30f179b886ee9da5d727d474a5bebb
      https://github.com/llvm/llvm-project/commit/fdb669b0dc30f179b886ee9da5d727d474a5bebb
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h

  Log Message:
  -----------
  [AMDGPU] clang-format: pass Triple by value and std::move it. NFC.


  Commit: 80d261493e9bd3046fd56c77e276a105cc20c185
      https://github.com/llvm/llvm-project/commit/80d261493e9bd3046fd56c77e276a105cc20c185
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
    M llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp

  Log Message:
  -----------
  [AMDGPU] clang-tidy: use override consistently. NFC.


  Commit: 945440033f50aeaf85fca709d8c2644456b2a034
      https://github.com/llvm/llvm-project/commit/945440033f50aeaf85fca709d8c2644456b2a034
  Author: Mike Rice <michael.p.rice at intel.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

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

  Log Message:
  -----------
  [NFC][clang] Replace unchecked dyn_cast with cast (#98948)

BI__builtin_hlsl_elementwise_rcp is only invoked with a FixedVectorType
so use cast to make this clear and satisfy the static verifier.


  Commit: 1cd6359f39ab7fa55f00086c322bc183adb583bc
      https://github.com/llvm/llvm-project/commit/1cd6359f39ab7fa55f00086c322bc183adb583bc
  Author: Youngsuk Kim <youngsuk.kim at hpe.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

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

  Log Message:
  -----------
  [clang][ASTReaderStmt] Use helper function 'saveStrToCtx' (NFC)


  Commit: 8ba9ed682552261d089ceb4bc9895d5f9fd0c888
      https://github.com/llvm/llvm-project/commit/8ba9ed682552261d089ceb4bc9895d5f9fd0c888
  Author: Hristo Hristov <hghristov.rmm at gmail.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M libcxx/docs/Status/Cxx2cIssues.csv
    M libcxx/include/__ranges/single_view.h
    A libcxx/test/std/ranges/range.factories/range.single.view/empty.pass.cpp

  Log Message:
  -----------
  [libc++][ranges] LWG4035: `single_view` should provide `empty` (#98371)

Implements: https://wg21.link/LWG4035

- https://eel.is/c++draft/range.single.view


  Commit: 0b43d573f54c16f8ccd231ae40a4704a93ab4aa1
      https://github.com/llvm/llvm-project/commit/0b43d573f54c16f8ccd231ae40a4704a93ab4aa1
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPUPrintfRuntimeBinding.cpp
    M llvm/lib/Target/AMDGPU/R600MachineCFGStructurizer.cpp
    M llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp

  Log Message:
  -----------
  [AMDGPU] clang-tidy: replace macro with enum. NFC.


  Commit: 4ecb5383e12f1be91d6de06bb377d35964c01a7a
      https://github.com/llvm/llvm-project/commit/4ecb5383e12f1be91d6de06bb377d35964c01a7a
  Author: Andrzej Warzyński <andrzej.warzynski at arm.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M mlir/test/Dialect/Vector/vector-transfer-collapse-inner-most-dims.mlir

  Log Message:
  -----------
  [mlir][vector] Update tests for collapse 6/n (nfc) (#98902)

The main goal of this PR (and subsequent PRs), is to add more tests with
scalable vectors to:
  * vector-transfer-collapse-inner-most-dims.mlir

There's quite a few cases to consider, hence this is split into multiple
PRs.

In this PR, I am making the following changes:
* All input memrefs for `xfer_read` are are renamed as `%src`.
* All input memrefs for `xfer_write` are are renamed as `%dest`.
* All variables representing pad values for `xfer_read` are renamed as
  `%pad`.
* All vector variables (for `xfer_read` and `xfer_write`) are renamed as
  `%v`.
* Add `@contiguous_inner_most_non_zero_idx_in_bounds_scalable` for
  `xfer_read` (similar test already exists for `xfer_write`)
* All index variables are renamed as `%i` (1st index) and `%ii` (2nd
  index).

The above were marked as TODOs in the test file - these are not
resolved. In addition (to avoid sending another PR):
* `@drop_inner_most_dim` is deleted - it duplicates
  `@contiguous_inner_most` for xfer_write
* For consistency with other negative tests, renamed `@non_unit_strides`
  as `@negative_non_unit_strides` and added a similar test for
  `xfer_read`
* `@non_unit_strides` is renamed as `@negative_non_unit_strides` and
  a similar test is added for `xfer_read`.

This is a follow-up for: #94490, #94604, #94906, #96214, #96227


  Commit: aeafdc21d29793fdb6bfb19b919ea3ad56226cf4
      https://github.com/llvm/llvm-project/commit/aeafdc21d29793fdb6bfb19b919ea3ad56226cf4
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPUIGroupLP.cpp
    M llvm/lib/Target/AMDGPU/AMDGPULibCalls.cpp
    M llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp
    M llvm/lib/Target/AMDGPU/GCNILPSched.cpp
    M llvm/lib/Target/AMDGPU/GCNNSAReassign.cpp
    M llvm/lib/Target/AMDGPU/GCNRewritePartialRegUses.cpp
    M llvm/lib/Target/AMDGPU/SIFormMemoryClauses.cpp

  Log Message:
  -----------
  [AMDGPU] Use using instead of typedef. NFC.


  Commit: 26098fe4b892cab75c56f7779dfe4dfe40615784
      https://github.com/llvm/llvm-project/commit/26098fe4b892cab75c56f7779dfe4dfe40615784
  Author: Andrzej Warzyński <andrzej.warzynski at arm.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M .github/CODEOWNERS

  Log Message:
  -----------
  [codeowners][nfc] Add myself and @dcaballe (#97853)


  Commit: 266a784cce959d475d3d79a877f0c5f39194a4c4
      https://github.com/llvm/llvm-project/commit/266a784cce959d475d3d79a877f0c5f39194a4c4
  Author: Lei Huang <lei at ca.ibm.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/lib/Target/PowerPC/PPCMIPeephole.cpp
    A llvm/test/CodeGen/PowerPC/peephole-combineRLWINM-liveness.mir

  Log Message:
  -----------
  [PowerPC] Ensure MI peephole knows about instr modified by combineRLWINM() (#97134)

Ensure registers used in instructions modified by `combineRLWINM()` are
added to list of `RegsToUpdate`.


  Commit: f1d3fe7aae7867b5de96b84d6d26b5c9f02f209a
      https://github.com/llvm/llvm-project/commit/f1d3fe7aae7867b5de96b84d6d26b5c9f02f209a
  Author: Alexis Perry-Holby <AlexisPerry at users.noreply.github.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M clang/include/clang/Driver/Options.td
    M clang/lib/Driver/ToolChains/Flang.cpp
    M flang/include/flang/Frontend/TargetOptions.h
    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/include/flang/Optimizer/Transforms/Passes.td
    M flang/lib/Frontend/CompilerInvocation.cpp
    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
    A flang/test/Driver/tune-cpu-fir.f90
    A flang/test/Lower/tune-cpu-llvm.f90
    M flang/tools/bbc/bbc.cpp
    M flang/tools/tco/tco.cpp
    M flang/unittests/Optimizer/FIRContextTest.cpp
    M mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
    M mlir/lib/Target/LLVMIR/ModuleImport.cpp
    M mlir/lib/Target/LLVMIR/ModuleTranslation.cpp
    A mlir/test/Target/LLVMIR/Import/tune-cpu.ll
    A mlir/test/Target/LLVMIR/tune-cpu.mlir

  Log Message:
  -----------
  Add basic -mtune support (#98517)

Initial implementation for the -mtune flag in Flang.

This PR is a clean version of PR #96688, which is a re-land of PR #95043


  Commit: 2ee5586ac7d8424b51790b143dbc6e2105bf99bc
      https://github.com/llvm/llvm-project/commit/2ee5586ac7d8424b51790b143dbc6e2105bf99bc
  Author: Andrzej Warzyński <andrzej.warzynski at arm.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/Vector/IR/VectorOps.td
    M mlir/include/mlir/IR/AffineMap.h
    M mlir/include/mlir/Interfaces/VectorInterfaces.td
    M mlir/lib/Dialect/Affine/Transforms/SuperVectorize.cpp
    M mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp
    M mlir/lib/Dialect/Vector/IR/VectorOps.cpp
    M mlir/lib/Dialect/Vector/Transforms/LowerVectorMask.cpp
    M mlir/lib/Dialect/Vector/Transforms/LowerVectorTransfer.cpp
    M mlir/lib/IR/AffineMap.cpp
    M mlir/test/Conversion/VectorToSCF/vector-to-scf.mlir
    M mlir/test/Dialect/Affine/SuperVectorize/vectorize_1d.mlir
    M mlir/test/Dialect/Affine/SuperVectorize/vectorize_2d.mlir
    M mlir/test/Dialect/Affine/SuperVectorize/vectorize_affine_apply.mlir
    M mlir/test/Dialect/Linalg/hoisting.mlir
    M mlir/test/Dialect/Linalg/vectorization.mlir
    M mlir/test/Dialect/Vector/invalid.mlir
    M mlir/test/Dialect/Vector/ops.mlir
    M mlir/test/Dialect/Vector/vector-transfer-collapse-inner-most-dims.mlir
    M mlir/test/Dialect/Vector/vector-transfer-permutation-lowering.mlir
    M mlir/test/Dialect/Vector/vector-transfer-to-vector-load-store.mlir
    M mlir/test/Dialect/Vector/vector-transfer-unroll.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/transfer-read-1d.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/transfer-read-2d.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/transfer-read-3d.mlir
    M mlir/test/python/dialects/vector.py

  Log Message:
  -----------
  [mlir][vector] Make the in_bounds attribute mandatory (#97049)

At the moment, the in_bounds attribute has two confusing/contradicting
properties:
  1. It is both optional _and_ has an effective default-value.
  2. The default value is "out-of-bounds" for non-broadcast dims, and
     "in-bounds" for broadcast dims.

(see the `isDimInBounds` vector interface method for an example of this
"default" behaviour [1]).

This PR aims to clarify the logic surrounding the `in_bounds` attribute
by:
  * making the attribute mandatory (i.e. it is always present),
  * always setting the default value to "out of bounds" (that's
    consistent with the current behaviour for the most common cases).

#### Broadcast dimensions in tests

As per [2], the broadcast dimensions requires the corresponding
`in_bounds` attribute to be `true`:
```
  vector.transfer_read op requires broadcast dimensions to be in-bounds
```

The changes in this PR mean that we can no longer rely on the
default value in cases like the following (dim 0 is a broadcast dim):
```mlir
  %read = vector.transfer_read %A[%base1, %base2], %f, %mask
      {permutation_map = affine_map<(d0, d1) -> (0, d1)>} :
    memref<?x?xf32>, vector<4x9xf32>
```

Instead, the broadcast dimension has to explicitly be marked as "in
bounds:

```mlir
  %read = vector.transfer_read %A[%base1, %base2], %f, %mask
      {in_bounds = [true, false], permutation_map = affine_map<(d0, d1) -> (0, d1)>} :
    memref<?x?xf32>, vector<4x9xf32>
```

All tests with broadcast dims are updated accordingly.

#### Changes in "SuperVectorize.cpp" and "Vectorization.cpp"

The following patterns in "Vectorization.cpp" are updated to explicitly
set the `in_bounds` attribute to `false`:
* `LinalgCopyVTRForwardingPattern` and `LinalgCopyVTWForwardingPattern`

Also, `vectorizeAffineLoad` (from "SuperVectorize.cpp") and
`vectorizeAsLinalgGeneric` (from "Vectorization.cpp") are updated to
make sure that xfer Ops created by these hooks set the dimension
corresponding to broadcast dims as "in bounds". Otherwise, the Op
verifier would complain

Note that there is no mechanism to verify whether the corresponding
memory access are indeed in bounds. Still, this is consistent with the
current behaviour where the broadcast dim would be implicitly assumed
to be "in bounds".

[1]
https://github.com/llvm/llvm-project/blob/4145ad2bac4bb99d5034d60c74bb2789f6c6e802/mlir/include/mlir/Interfaces/VectorInterfaces.td#L243-L246
[2]
https://mlir.llvm.org/docs/Dialects/Vector/#vectortransfer_read-vectortransferreadop


  Commit: 74b87b02d21583c66c4cf6659703e4bd5c4f537d
      https://github.com/llvm/llvm-project/commit/74b87b02d21583c66c4cf6659703e4bd5c4f537d
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPUAttributor.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUCallLowering.cpp
    M llvm/lib/Target/AMDGPU/AMDGPULibCalls.cpp
    M llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
    M llvm/lib/Target/AMDGPU/AMDGPURemoveIncompatibleFunctions.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
    M llvm/lib/Target/AMDGPU/GCNILPSched.cpp
    M llvm/lib/Target/AMDGPU/GCNIterativeScheduler.cpp
    M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUELFStreamer.cpp
    M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
    M llvm/lib/Target/AMDGPU/SIMemoryLegalizer.cpp
    M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp

  Log Message:
  -----------
  [AMDGPU] Fix and add namespace closing comments. NFC.


  Commit: 5b54f36fb607d21c18f9eb56dcf481a9841dee8e
      https://github.com/llvm/llvm-project/commit/5b54f36fb607d21c18f9eb56dcf481a9841dee8e
  Author: Chenguang Wang <w3cing at gmail.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

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

  Log Message:
  -----------
  [bazel] Fix llvm:Core build (#99054)

According to @akuegel, this breakage was introduced in c05126bd.


  Commit: 3706c12c8e2df3bae7ba27ba4645f6eef000bab4
      https://github.com/llvm/llvm-project/commit/3706c12c8e2df3bae7ba27ba4645f6eef000bab4
  Author: smanna12 <soumi.manna at intel.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/include/llvm/Demangle/MicrosoftDemangle.h

  Log Message:
  -----------
  Prevent copying of ArenaAllocator (#97935)

This patch removes copy constructor and assignment operator from
ArenaAllocator class to prevent resource duplication and ensure it
remains non-copyable as per design intent.


  Commit: f0eb5587ceeb641445b64cb264c822b4751de04a
      https://github.com/llvm/llvm-project/commit/f0eb5587ceeb641445b64cb264c822b4751de04a
  Author: James Y Knight <jyknight at google.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/Basic/BuiltinsX86.def
    M clang/include/clang/Driver/Options.td
    M clang/lib/Basic/Targets/X86.cpp
    M clang/lib/Basic/Targets/X86.h
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/lib/Driver/ToolChains/Arch/X86.cpp
    M clang/lib/Headers/mm3dnow.h
    M clang/lib/Headers/x86intrin.h
    R clang/test/CodeGen/X86/3dnow-builtins.c
    M clang/test/CodeGen/builtins-x86.c
    M clang/test/Driver/x86-target-features.c
    M clang/test/Headers/mm3dnow.c
    M clang/test/Preprocessor/predefined-arch-macros.c
    M clang/test/Preprocessor/x86_target_features.c
    M llvm/docs/ReleaseNotes.rst
    M llvm/include/llvm/IR/IntrinsicsX86.td
    M llvm/lib/Target/X86/X86.td
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/lib/Target/X86/X86Instr3DNow.td
    M llvm/lib/Target/X86/X86InstrPredicates.td
    M llvm/lib/Target/X86/X86Subtarget.cpp
    M llvm/lib/Target/X86/X86Subtarget.h
    R llvm/test/CodeGen/X86/3dnow-intrinsics.ll
    R llvm/test/CodeGen/X86/commute-3dnow.ll
    M llvm/test/CodeGen/X86/expand-vr64-gr64-copy.mir
    M llvm/test/CodeGen/X86/pr35982.ll
    M llvm/test/CodeGen/X86/prefetch.ll
    R llvm/test/CodeGen/X86/stack-folding-3dnow.ll

  Log Message:
  -----------
  Remove support for 3DNow!, both intrinsics and builtins. (#96246)

This set of instructions was only supported by AMD chips starting in
the K6-2 (introduced 1998), and before the "Bulldozer" family
(2011). They were never much used, as they were effectively superseded
by the more-widely-implemented SSE (first implemented on the AMD side
in Athlon XP in 2001).

This is being done as a predecessor towards general removal of MMX
register usage. Since there is almost no usage of the 3DNow!
intrinsics, and no modern hardware even implements them, simple
removal seems like the best option.

(Clang half originally uploaded in https://reviews.llvm.org/D94213)

Works towards issue #41665 and issue #98272.


  Commit: 47f3d55ecebe5d4f0376bce673be75a98b5763a7
      https://github.com/llvm/llvm-project/commit/47f3d55ecebe5d4f0376bce673be75a98b5763a7
  Author: Kamau Bridgeman <kamau.bridgeman.ibm at gmail.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

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

  Log Message:
  -----------
  XFAIL: lld-available lit.cfg tag does not work as intended. (#99056)

This change XFAILs instrprof-gc-sections.c compiler-rt test case
because it uses the `lld-available` lit.config tag which erroneously
uses the `CMAKE_LINKER` if it is lld instead of checking for the
latest and greatest lld available. A patch is in the works to fix
this.
This change is to bring the `clang-ppc64le-linux-test-suite` and
`clang-ppc64le-linux-multistage` back to green as they were broken
as of PR #98382


  Commit: f58cfacfafda0961396f92816692e9a316dec0c2
      https://github.com/llvm/llvm-project/commit/f58cfacfafda0961396f92816692e9a316dec0c2
  Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp
    A llvm/test/Transforms/AggressiveInstCombine/memchr.ll

  Log Message:
  -----------
   [AggressiveInstCombine] Expand memchr with small constant strings (#98501)

This patch converts memchr with a small constant string into a switch.
It will reduce overhead of libcall and enable more folds (e.g.,
comparing the result with null).

References: https://en.cppreference.com/w/c/string/byte/memchr


  Commit: 99153c84dc321a7493dd4c5888973f525bf9f65e
      https://github.com/llvm/llvm-project/commit/99153c84dc321a7493dd4c5888973f525bf9f65e
  Author: Petr Hosek <phosek at google.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

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

  Log Message:
  -----------
  [CMake][Fuchsia] Build libc++ on top libc for baremetal (#99009)

This is mostly a proof of concept requiring a number of workarounds, but
demonstrates that it is feasible.


  Commit: 618b0b77cd7ecbdf726d393269ce822bf8d3beb9
      https://github.com/llvm/llvm-project/commit/618b0b77cd7ecbdf726d393269ce822bf8d3beb9
  Author: vporpo <vporpodas at google.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/include/llvm/SandboxIR/SandboxIR.h
    M llvm/lib/SandboxIR/SandboxIR.cpp
    M llvm/unittests/SandboxIR/SandboxIRTest.cpp

  Log Message:
  -----------
  [SandboxIR] Add more Instruction member functions (#98588)

This patch adds new Instruction member functions, including:
- getNextNode()
- getPrevNode()
- getOpcode()
- removeFromParent()
- eraseFromParent()
- getParent()
- insertBefore()
- insertAfter()
- insertInto()
- moveBefore()
- moveAfter()


  Commit: 986ceae7c54bcda76edeffa41ff9aa0cd18a3c8e
      https://github.com/llvm/llvm-project/commit/986ceae7c54bcda76edeffa41ff9aa0cd18a3c8e
  Author: Chris Cotter <ccotter14 at bloomberg.net>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc
    A compiler-rt/test/msan/Linux/prctl.cpp
    M compiler-rt/test/sanitizer_common/TestCases/Linux/prctl.cpp

  Log Message:
  -----------
  [msan] Support prctl PR_GET_NAME call (#98951)

Per the man page, PR_GET_NAME stores a null terminated string into the
input `char name[16]`.

This also adds prctl support in ASAN to detect freed memory being passed
to `prctl(PR_GET_NAME, ...)`:


  Commit: 8ff233f4f16f4e372cba92ca5175fcd5e1791195
      https://github.com/llvm/llvm-project/commit/8ff233f4f16f4e372cba92ca5175fcd5e1791195
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/AArch64/extractelements-to-shuffle.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/remarks_cmp_sel_min_max.ll
    M llvm/test/Transforms/SLPVectorizer/X86/partail.ll

  Log Message:
  -----------
  [SLP]Correctly detect minnum/maxnum patterns for select/cmp operations on floats.

The patch enables detection of minnum/maxnum patterns for float point
instruction, represented as select/cmp. Also, enables better cost
estimation for integer min/max patterns since the compiler starts
to estimate the scalars separately.

Reviewers: nikic, RKSimon

Reviewed By: RKSimon

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


  Commit: 15915c06d54151b78378a7cd029e1a8c09e764b3
      https://github.com/llvm/llvm-project/commit/15915c06d54151b78378a7cd029e1a8c09e764b3
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/AArch64/scalarization-overhead.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reused-extractelements.ll

  Log Message:
  -----------
  [SLP]Do not vectorize small (<=2) buildvector/buildvalue sequences with MaxVF==true.

If MaxVFOnly for buildvector/buildvalue vectorization is set to true and the
total number of elements to vectorize is <= 2, better to try to
vectorize reductions at first, which may produce larger tree (reductions
have a limit of at least 4 elements to vectorize). Smaller
buildvector/buildvalue sequence will be attempted to vectorize later,
with MaxVFOnly set to false.

Reviewers: RKSimon

Reviewed By: RKSimon

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


  Commit: 1ca07cee7ffaccaa5b07dc0105309b9d43a615d0
      https://github.com/llvm/llvm-project/commit/1ca07cee7ffaccaa5b07dc0105309b9d43a615d0
  Author: Vasileios Porpodas <vporpodas at google.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/include/llvm/SandboxIR/SandboxIR.h
    M llvm/lib/SandboxIR/SandboxIR.cpp
    M llvm/unittests/SandboxIR/SandboxIRTest.cpp

  Log Message:
  -----------
  Revert "[SandboxIR] Add more Instruction member functions (#98588)"

This reverts commit 618b0b77cd7ecbdf726d393269ce822bf8d3beb9.


  Commit: 3cdbb8d74d6fbd298ad4d7d283a3c7bba008e8ef
      https://github.com/llvm/llvm-project/commit/3cdbb8d74d6fbd298ad4d7d283a3c7bba008e8ef
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M libc/test/src/wchar/CMakeLists.txt

  Log Message:
  -----------
  [libc] Fix old unittests for wchar tests (#99060)

Summary:
These need to use `add_libc_test`.


  Commit: afbdd6f3c759d82624a6ab5dcc31c0ac3b35d9eb
      https://github.com/llvm/llvm-project/commit/afbdd6f3c759d82624a6ab5dcc31c0ac3b35d9eb
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

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

  Log Message:
  -----------
  Revert "[PatternMatch] Fix issue of stale reference in new `m_{I,F,}Cmp` matchers" (#99062)

Reverts llvm/llvm-project#98866

It's still use-after-scope.


  Commit: a05724a1f84853fc655950c36453f200fba8af75
      https://github.com/llvm/llvm-project/commit/a05724a1f84853fc655950c36453f200fba8af75
  Author: Mark de Wever <koraq at xs4all.nl>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M libcxx/include/__chrono/year_month_day.h
    M libcxx/modules/std/chrono.inc
    M libcxx/test/std/time/time.cal/time.cal.ymdlast/time.cal.ymdlast.nonmembers/comparisons.pass.cpp

  Log Message:
  -----------
  [libc++][chrono] Adds year_month_day_last&::operator<=>. (#98169)

41f7bb9975bcaffae0267fa87b63c90b83ffd551 claimed it implemented this
change but the code was not adjusted. The other spaceship operators in
the calendar code have been validated too.

Implements parts of
- P1614R2 The Mothership has Landed


  Commit: f38baad3e7395af94290aac21e587bc1c5f00946
      https://github.com/llvm/llvm-project/commit/f38baad3e7395af94290aac21e587bc1c5f00946
  Author: Shilei Tian <i at tianshilei.me>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
    A llvm/test/Transforms/InstCombine/AMDGPU/select-from-load.ll

  Log Message:
  -----------
  [InstCombine] Fix a crash in `PointerReplacer` (#98987)

A crash could happen in `PointerReplacer::replace` when constructing a
new
select instruction and there is no replacement for one of its operand.
This can
happen when the operand is a load instruction that has been replaced
earlier
such that the operand itself is already the new value. In this case, it
is not
in the replacement map and `getReplacement` simply returns nullptr.

Fix SWDEV-472192.


  Commit: ca61bdde476aae4d179f16561ce4d245df9f0fdf
      https://github.com/llvm/llvm-project/commit/ca61bdde476aae4d179f16561ce4d245df9f0fdf
  Author: smanna12 <soumi.manna at intel.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M clang/lib/Sema/TreeTransform.h

  Log Message:
  -----------
  [Clang] Prevent null pointer dereference in TransformUnaryTransformType() (#97912)

This patch adds null check after TransformType call to avoid
dereferencing a null pointer when calling getType().


  Commit: 6464dd21b50bb5f22a5beae1377fec501b38e764
      https://github.com/llvm/llvm-project/commit/6464dd21b50bb5f22a5beae1377fec501b38e764
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M lld/ELF/ScriptParser.cpp
    M lld/docs/ReleaseNotes.rst
    M lld/test/ELF/invalid-linkerscript.test
    M lld/test/ELF/oformat-binary.s

  Log Message:
  -----------
  [ELF] OUTPUT_FORMAT: support "binary" and ignore extra OUTPUT_FORMAT commands

This patch improves GNU ld compatibility.

Close #87891: Support `OUTPUT_FORMAT(binary)`, which is like
--oformat=binary. --oformat=binary takes precedence over an ELF
`OUTPUT_FORMAT`.

In addition, if more than one OUTPUT_FORMAT command is specified, only
check the first one.

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


  Commit: d269071d8524595fe65258e384411d1c0ae15df5
      https://github.com/llvm/llvm-project/commit/d269071d8524595fe65258e384411d1c0ae15df5
  Author: Justin Bogner <mail at justinbogner.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M clang/include/clang/Sema/HLSLExternalSemaSource.h
    M clang/lib/Sema/HLSLExternalSemaSource.cpp
    M clang/test/AST/HLSL/RWBuffer-AST.hlsl
    R clang/test/AST/HLSL/ResourceStruct.hlsl
    M clang/test/SemaHLSL/BuiltIns/RWBuffers.hlsl

  Log Message:
  -----------
  [HLSL] Remove hlsl::Resource (#98938)

This was added in an effort to support resource types before we created
the HLSLResource builtin type, but it isn't needed.


  Commit: 656f617ac772c54e0bee9d499e7ca232137ddb35
      https://github.com/llvm/llvm-project/commit/656f617ac772c54e0bee9d499e7ca232137ddb35
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M compiler-rt/lib/tsan/rtl/tsan_defs.h
    M compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp
    M compiler-rt/lib/tsan/rtl/tsan_interface_ann.cpp
    M compiler-rt/lib/tsan/rtl/tsan_mman.cpp
    M compiler-rt/lib/tsan/rtl/tsan_platform_mac.cpp
    M compiler-rt/lib/tsan/rtl/tsan_rtl.cpp
    M compiler-rt/lib/tsan/rtl/tsan_rtl.h
    M compiler-rt/lib/tsan/rtl/tsan_suppressions.cpp
    M compiler-rt/lib/tsan/rtl/tsan_vector_clock.h

  Log Message:
  -----------
  [tsan] Replace ALIGNED with alignas

Similar to #98958.

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


  Commit: 48f55ba9d8e51cf976a8789521dd0763dea1e2d1
      https://github.com/llvm/llvm-project/commit/48f55ba9d8e51cf976a8789521dd0763dea1e2d1
  Author: Justin Bogner <mail at justinbogner.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/include/llvm/Support/DXILABI.h
    A llvm/include/llvm/Transforms/Utils/DXILResource.h
    M llvm/lib/Transforms/Utils/CMakeLists.txt
    A llvm/lib/Transforms/Utils/DXILResource.cpp
    M llvm/unittests/Transforms/Utils/CMakeLists.txt
    A llvm/unittests/Transforms/Utils/DXILResourceTest.cpp

  Log Message:
  -----------
  [Transforms][DXIL] Tool to generate resource metadata and annotations (#98939)

This introduces dxil::ResourceInfo, which can generate DXIL-style
metadata for resources and the constants for the DXIL 6.6+
annotateResource operation. These are done together so that it's easier
to see all of the information the ResourceInfo class needs to store.

This will be used for lowering resource in the DirectX backend and is
intended to help with the translation in the other direction as well. To
do that, we'll need the inverse functions of `getAsMetadata` and
`getAnnotateProps`.


  Commit: b359209816bc58ac28139fe60bd44fe1a450778d
      https://github.com/llvm/llvm-project/commit/b359209816bc58ac28139fe60bd44fe1a450778d
  Author: Justin Bogner <mail at justinbogner.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/unittests/Transforms/Utils/DXILResourceTest.cpp

  Log Message:
  -----------
  Fully qualify `std::nullptr`


  Commit: 9f14197eba554adcbc90a69fa517d6597c3ab25f
      https://github.com/llvm/llvm-project/commit/9f14197eba554adcbc90a69fa517d6597c3ab25f
  Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/utils/gn/secondary/llvm/lib/Transforms/Utils/BUILD.gn
    M llvm/utils/gn/secondary/llvm/unittests/Transforms/Utils/BUILD.gn

  Log Message:
  -----------
  [gn build] Port 48f55ba9d8e5


  Commit: bbcb3d6aabef60c2dd2c32764ca4fd297782c322
      https://github.com/llvm/llvm-project/commit/bbcb3d6aabef60c2dd2c32764ca4fd297782c322
  Author: Vasileios Porpodas <vporpodas at google.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/include/llvm/SandboxIR/SandboxIR.h
    M llvm/lib/SandboxIR/SandboxIR.cpp
    M llvm/unittests/SandboxIR/SandboxIRTest.cpp

  Log Message:
  -----------
  Reapply "[SandboxIR] Add more Instruction member functions (#98588)"

This reverts commit 1ca07cee7ffaccaa5b07dc0105309b9d43a615d0.


  Commit: d3f8105c65046173e20c4c59394b4a7f1bbe7627
      https://github.com/llvm/llvm-project/commit/d3f8105c65046173e20c4c59394b4a7f1bbe7627
  Author: Aaron Ballman <aaron at aaronballman.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/docs/tools/clang-formatted-files.txt
    M clang/lib/Basic/CMakeLists.txt
    M clang/lib/Basic/Targets.cpp
    A clang/lib/Basic/Targets/Le64.cpp
    A clang/lib/Basic/Targets/Le64.h
    M clang/lib/Basic/Targets/OSTargets.h
    M clang/lib/CodeGen/CodeGenModule.cpp
    M clang/lib/CodeGen/ItaniumCXXABI.cpp
    M clang/lib/Driver/ToolChains/Clang.cpp
    M clang/test/CodeGen/bitfield-access-pad.c
    M clang/test/CodeGen/bitfield-access-unit.c
    M clang/test/CodeGenCXX/bitfield-access-empty.cpp
    M clang/test/CodeGenCXX/bitfield-access-tail.cpp
    M clang/test/Preprocessor/predefined-macros-no-warnings.c
    M llvm/include/llvm/TargetParser/Triple.h
    M llvm/lib/TargetParser/Triple.cpp
    M llvm/utils/gn/secondary/clang/lib/Basic/BUILD.gn

  Log Message:
  -----------
  Revert "Finish deleting the le32/le64 targets" (#99079)

Reverts llvm/llvm-project#98497

We're reverting this for approx 30 days so that the Halide project has
time to transition off the target.


  Commit: 41b876dba420d09ba1015798a06b2b101cbb21bf
      https://github.com/llvm/llvm-project/commit/41b876dba420d09ba1015798a06b2b101cbb21bf
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    A llvm/test/Analysis/ValueTracking/known-bits.ll
    A llvm/test/Analysis/ValueTracking/known-fpclass.ll
    M llvm/test/Analysis/ValueTracking/known-non-zero.ll

  Log Message:
  -----------
  [ValueTracking] Add tests for Known{Bits,NonZero,FPClass} for `llvm.vector.reverse`; NFC


  Commit: 769952d72ff383e0e5fda46802fb8717712784d3
      https://github.com/llvm/llvm-project/commit/769952d72ff383e0e5fda46802fb8717712784d3
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/test/Analysis/ValueTracking/known-bits.ll
    M llvm/test/Analysis/ValueTracking/known-fpclass.ll
    M llvm/test/Analysis/ValueTracking/known-non-zero.ll

  Log Message:
  -----------
  [ValueTracking] Implement Known{Bits,NonZero,FPClass} for `llvm.vector.reverse`

`llvm.vector.reverse` preserves each of the elements and thus elements
common to them.

Alive2 doesn't support the intrin yet, but the logic seems pretty
self-evident.

Closes #99013


  Commit: 81704f6946894538ee1649a88688f604939de7f0
      https://github.com/llvm/llvm-project/commit/81704f6946894538ee1649a88688f604939de7f0
  Author: Daniel Thornburgh <dthorn at google.com>
  Date:   2024-07-16 (Tue, 16 Jul 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/Linux/preadv2.cpp

  Log Message:
  -----------
  Revert "[compiler-rt] adding preadv2/pwritev2 interceptions." (#99085)

Reverts llvm/llvm-project#97216


  Commit: 5f8c46b88799a710f98c00d377d7edc34096f85d
      https://github.com/llvm/llvm-project/commit/5f8c46b88799a710f98c00d377d7edc34096f85d
  Author: Fehr Mathieu <mathieu.fehr at gmail.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M mlir/include/mlir-c/Rewrite.h
    A mlir/include/mlir/CAPI/Rewrite.h
    M mlir/lib/CAPI/Transforms/Rewrite.cpp
    M mlir/test/CAPI/CMakeLists.txt
    A mlir/test/CAPI/rewrite.c
    M mlir/test/CMakeLists.txt
    M mlir/test/lit.cfg.py

  Log Message:
  -----------
  [mlir] Add RewriterBase to the C API (#98962)

This exposes most of the `RewriterBase` methods to the C API.
This allows to manipulate both the `IRRewriter` and the
`PatternRewriter`. The
`IRRewriter` can be created from the C API, while the `PatternRewriter`
cannot.

The missing operations are the ones taking `Block::iterator` and
`Region::iterator` as
parameters, as they are not exposed by the C API yet AFAIK.

The Python bindings for these methods and classes are not implemented.


  Commit: f1c957d41bbb07c917cd36762bd6434e7d3daf95
      https://github.com/llvm/llvm-project/commit/f1c957d41bbb07c917cd36762bd6434e7d3daf95
  Author: aaryanshukla <53713108+aaryanshukla at users.noreply.github.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M libc/newhdrgen/class_implementation/classes/function.py
    A libc/newhdrgen/gpu_headers.py
    M libc/newhdrgen/header.py
    A libc/newhdrgen/yaml/features.yaml
    M libc/newhdrgen/yaml/pthread.yaml
    M libc/newhdrgen/yaml/sys/sys_random.yaml
    M libc/newhdrgen/yaml/time.yaml
    M libc/newhdrgen/yaml_to_classes.py

  Log Message:
  -----------
  [libc] newheadergen: script adjusted for cmake (#98825)

- added entrypoints and headerfile parameters depending on target
- fixed nits in yaml files causing errors
- tested with new cmake config
- cmake patch will be seperate


  Commit: bccd1190c99120e3675771c23901d4a44f82c617
      https://github.com/llvm/llvm-project/commit/bccd1190c99120e3675771c23901d4a44f82c617
  Author: Stanislav Mekhanoshin <rampitec at users.noreply.github.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/test/MC/AMDGPU/expressions-gfx10.s
    M llvm/test/MC/AMDGPU/gfx1013.s
    M llvm/test/MC/AMDGPU/gfx1030_unsupported.s
    M llvm/test/MC/AMDGPU/gfx10_asm_dpp16.s
    M llvm/test/MC/AMDGPU/gfx10_asm_dpp8.s
    M llvm/test/MC/AMDGPU/gfx10_asm_ds.s
    M llvm/test/MC/AMDGPU/gfx10_asm_err.s
    M llvm/test/MC/AMDGPU/gfx10_asm_flat.s
    M llvm/test/MC/AMDGPU/gfx10_asm_mubuf.s
    M llvm/test/MC/AMDGPU/gfx10_asm_smem.s
    M llvm/test/MC/AMDGPU/gfx10_asm_sop.s
    M llvm/test/MC/AMDGPU/gfx10_asm_vop1.s
    M llvm/test/MC/AMDGPU/gfx10_asm_vop2.s
    M llvm/test/MC/AMDGPU/gfx10_asm_vop3.s
    M llvm/test/MC/AMDGPU/gfx10_asm_vopc.s
    M llvm/test/MC/AMDGPU/gfx10_asm_vopc_e64.s
    M llvm/test/MC/AMDGPU/gfx10_asm_vopc_sdwa.s
    M llvm/test/MC/AMDGPU/gfx10_asm_vopcx.s
    M llvm/test/MC/AMDGPU/gfx10_unsupported.s
    M llvm/test/MC/AMDGPU/gfx10_unsupported_dpp.s
    M llvm/test/MC/AMDGPU/gfx10_unsupported_e32.s
    M llvm/test/MC/AMDGPU/gfx10_unsupported_e64.s
    M llvm/test/MC/AMDGPU/gfx10_unsupported_e64_dpp.s
    M llvm/test/MC/AMDGPU/gfx10_unsupported_sdwa.s
    M llvm/test/MC/AMDGPU/gfx11-promotions.s
    M llvm/test/MC/AMDGPU/gfx11_asm_flat.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop1-fake16.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop1.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop1_dpp16-fake16.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop1_dpp16.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop1_dpp8-fake16.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop1_dpp8.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop1_t16_err-fake16.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop1_t16_err.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop1_t16_promote.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop2.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop2_dpp16.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop2_dpp8.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop2_t16_err.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop2_t16_promote.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop3.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop3_alias.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp16.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp16_from_vop1-fake16.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp16_from_vop1.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp16_from_vop2.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp16_from_vopc.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp16_from_vopcx.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp8.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp8_from_vop1-fake16.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp8_from_vop1.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp8_from_vop2.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp8_from_vopc.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp8_from_vopcx.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop3_err.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop3_from_vop1.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop3_from_vop2.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop3_from_vopc.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop3_from_vopcx.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop3p_dpp16.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop3p_dpp8.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vopc.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vopc_dpp16.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vopc_dpp8.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vopcx.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vopcx_dpp16.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vopcx_dpp8.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vopd.s
    M llvm/test/MC/AMDGPU/gfx11_asm_wmma.s
    M llvm/test/MC/AMDGPU/gfx11_unsupported.s
    M llvm/test/MC/AMDGPU/gfx11_unsupported_dpp.s
    M llvm/test/MC/AMDGPU/gfx11_unsupported_e32.s
    M llvm/test/MC/AMDGPU/gfx11_unsupported_e64.s
    M llvm/test/MC/AMDGPU/gfx11_unsupported_sdwa-fake16.s
    M llvm/test/MC/AMDGPU/gfx11_unsupported_sdwa.s
    M llvm/test/MC/AMDGPU/gfx12_asm_global_load_tr.s
    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_vop2.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop2_aliases.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop2_dpp16.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop2_dpp8.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop3.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop3_aliases.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_err.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/AMDGPU/gfx12_asm_vop3_from_vop2.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop3_from_vop2_dpp16.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop3_from_vop2_dpp8.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop3c.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop3c_dpp16.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop3c_dpp8.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop3cx.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop3cx_dpp16.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop3cx_dpp8.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop3p_aliases.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop3p_dpp16.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop3p_dpp8.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vopc.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vopc_dpp16.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vopc_dpp8.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vopc_t16_promote.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vopcx.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vopcx_dpp16.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vopcx_dpp8.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vopd.s
    M llvm/test/MC/AMDGPU/gfx12_asm_wmma_w64.s
    M llvm/test/MC/AMDGPU/vop3-literal.s
    M llvm/test/MC/Disassembler/AMDGPU/gfx10_ds.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx10_flat.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx10_mubuf.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx10_smem.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx10_sop1.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx10_sop2.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx10_sopc.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx10_sopk.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx10_sopp.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx10_vop1.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx10_vop1_dpp16.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx10_vop1_dpp8.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx10_vop1_sdwa.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx10_vop2.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx10_vop2_dpp16.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx10_vop2_dpp8.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx10_vop2_sdwa.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx10_vop3.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx10_vop3c.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx10_vop3cx.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx10_vopc.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx10_vopc_sdwa.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx10_vopcx.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx10_vopcx_sdwa.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_dpp16.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_dpp16_from_vop2.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_dpp8.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_dpp8_from_vop2.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_from_vop1.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_from_vop2.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vopc.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vopc_dpp16.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vopc_dpp8.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vopcx.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vopcx_dpp16.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vopcx_dpp8.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vopd.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_wmma.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_global_load_tr.txt
    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_vop2.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop2_dpp16.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop2_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_vop2.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3_from_vop2_dpp16.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3_from_vop2_dpp8.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3c.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3c_dpp16.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3c_dpp8.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3cx.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3cx_dpp16.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3cx_dpp8.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3p.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3p_dpp16.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3p_dpp8.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vopc.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vopc_dpp16.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vopc_dpp8.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vopcx.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vopcx_dpp16.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vopcx_dpp8.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vopd.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_wmma_w64.txt

  Log Message:
  -----------
  [AMDGPU] Get rid of the +wavefrontsizeXX,-wavefrontsizeXX in MC tests (#99001)

Now turning off/turning on feature is not needed in most cases. This is
NFC, tests only.


  Commit: bb604ae9b8adbc0a0852eb68545eff685902f41b
      https://github.com/llvm/llvm-project/commit/bb604ae9b8adbc0a0852eb68545eff685902f41b
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/lib/IR/CMakeLists.txt

  Log Message:
  -----------
  [LLVM][LTO] Add missing dependency

Fixes 'llvm/CodeGen/GenVT.inc' file not found.

Follow up to #98512


  Commit: e094abde42634e38cda85a6024792f681fc58f32
      https://github.com/llvm/llvm-project/commit/e094abde42634e38cda85a6024792f681fc58f32
  Author: Volodymyr Vasylkun <vvmposeydon at gmail.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/include/llvm/CodeGen/TargetLowering.h
    M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
    M llvm/lib/Target/AArch64/AArch64ISelLowering.h
    M llvm/lib/Target/SystemZ/SystemZISelLowering.h
    A llvm/test/CodeGen/ARM/scmp.ll
    A llvm/test/CodeGen/ARM/ucmp.ll
    A llvm/test/CodeGen/LoongArch/scmp.ll
    A llvm/test/CodeGen/LoongArch/ucmp.ll
    A llvm/test/CodeGen/PowerPC/scmp.ll
    A llvm/test/CodeGen/PowerPC/ucmp.ll
    A llvm/test/CodeGen/RISCV/scmp.ll
    A llvm/test/CodeGen/RISCV/ucmp.ll
    A llvm/test/CodeGen/SystemZ/scmp.ll
    A llvm/test/CodeGen/SystemZ/ucmp.ll
    A llvm/test/CodeGen/Thumb/scmp.ll
    A llvm/test/CodeGen/Thumb/ucmp.ll
    A llvm/test/CodeGen/WebAssembly/scmp.ll
    A llvm/test/CodeGen/WebAssembly/ucmp.ll
    M llvm/test/CodeGen/X86/scmp.ll
    M llvm/test/CodeGen/X86/ucmp.ll

  Log Message:
  -----------
  [SelectionDAG] Expand [US]CMP using arithmetic on boolean values instead of selects (#98774)

The previous expansion of [US]CMP was done using two selects and two
compares. It produced decent code, but on many platforms it is better to
implement [US]CMP nodes by performing the following operation:

  ```
[us]cmp(x, y) = (x [us]> y) - (x [us]< y)
```

This patch adds this new expansion, as well as a hook in TargetLowering to allow some targets to still use the select-based approach. AArch64 and SystemZ are currently the only targets to prefer the former approach, but other targets may also start to use it if it provides for better codegen.


  Commit: 9078036685af5b170380ce223e875659e3674e76
      https://github.com/llvm/llvm-project/commit/9078036685af5b170380ce223e875659e3674e76
  Author: Brian Cain <bcain at quicinc.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M lld/ELF/Driver.cpp
    M lld/ELF/ScriptParser.cpp
    A lld/test/ELF/emulation-hexagon.s

  Log Message:
  -----------
  [lld] Add emulation support for hexagon (#98857)


  Commit: ff6ff2e2561027b5f2db1be7edae9a29be5c95b4
      https://github.com/llvm/llvm-project/commit/ff6ff2e2561027b5f2db1be7edae9a29be5c95b4
  Author: Kamau Bridgeman <kamau.bridgeman at ibm.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

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

  Log Message:
  -----------
  NFC: Mark instrprof-gc-sections.c unsupported on ppc64le

PR #99056 marked this test case as an XFAIl for ppc64le but it
is actually being temporary unsupported, this changes it from
an XFAIl to unsupported.


  Commit: d01d9abf851fe688dd5f24649db2728431ca5c0d
      https://github.com/llvm/llvm-project/commit/d01d9abf851fe688dd5f24649db2728431ca5c0d
  Author: vporpo <vporpodas at google.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/include/llvm/SandboxIR/SandboxIR.h
    A llvm/include/llvm/SandboxIR/Use.h

  Log Message:
  -----------
  [SandboxIR][NFC] Move sandboxir::Use into a separate file (#99074)

This helps avoid circular dependencies in a follow-up patch.


  Commit: 80e18b93c5abfcbf296b6e2b45cea1ee77633f1e
      https://github.com/llvm/llvm-project/commit/80e18b93c5abfcbf296b6e2b45cea1ee77633f1e
  Author: Martin Storsjö <martin at martin.st>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/include/llvm/Object/COFFImportFile.h
    M llvm/lib/Object/COFFImportFile.cpp
    M llvm/lib/Object/COFFModuleDefinition.cpp
    M llvm/lib/ToolDrivers/llvm-dlltool/DlltoolDriver.cpp

  Log Message:
  -----------
  [llvm-dlltool] Remove the i386 underscore prefix from COFFImportFile::ImportName. NFC. (#98226)

On i386, regular C level symbols are given an underscore prefix
in the symbols on the object file level. However, the exported
names from DLLs usually don't have this leading underscore.

When specified in a def file like "symbol == dllname", the "dllname"
is the name of the exported symbol from the DLL, which will be
linked against from an object file symbol named "_symbol"
(on i386).

The mechanism where one symbol is redirected to another one in
an import library is implemented with weak aliases. In that case,
we need to have the object file symbol level name for the target
of the import, as we make one object file symbol point at another
one. Therefore, we added an underscore to the ImportName field.

(This mechanism, with weak aliases, only works as long as the
target also is exported as is, in that form - this issue is
dealt with in a later commit.)

For clarity, for potentially handling the import renaming in
other ways, store the ImportName field unprefixed, containing
the actual name to import from the DLL.

When creating the aliases, add the prefix as needed. This requires
passing an extra AddUnderscores parameter to the writeImportLibrary
function; this is a temporary measure, until alias creation is
reworked in a later commit.

This doesn't preserve the corner case of checking !isDecorated()
before adding the prefix. This corner case isn't tested by any
of our existing tests, and only would trigger for
fastcall/vectorcall/MS C++ functions - while these kinds of
renames primarily are used in mingw-w64-crt import libraries
(which primarily handle cdecl and stdcall functions).


  Commit: ad2ff1722622d199e77abf119e60bb1c66dd48e9
      https://github.com/llvm/llvm-project/commit/ad2ff1722622d199e77abf119e60bb1c66dd48e9
  Author: Sam Clegg <sbc at chromium.org>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M lld/test/wasm/dylink.s
    M lld/wasm/InputFiles.cpp

  Log Message:
  -----------
  [lld][WebAssembly] Work around limited architecture detection for wasm64 shared libraries (#98961)

We don't currently have a great way to detect the architecture of shared
object files under wasm. The currently method involves checking if the
imported or exported memory is 64-bit. However some shared libraries
don't use linear memory at all.

See https://github.com/llvm/llvm-project/issues/98778


  Commit: 446965070149d53374ee4d3010789673083fb11c
      https://github.com/llvm/llvm-project/commit/446965070149d53374ee4d3010789673083fb11c
  Author: Martin Storsjö <martin at martin.st>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/lib/Object/COFFImportFile.cpp
    M llvm/test/tools/llvm-dlltool/coff-decorated.def

  Log Message:
  -----------
  [llvm-dlltool] Handle import renaming using other name types, when possible (#98228)

This avoids needing to use weak aliases for these cases. (Weak
aliases only work if there's another, regular import entry that
provide the desired symbol from the DLL.)


  Commit: f2d6d74cd2a8dccc5ec47bb5debb003e06249db3
      https://github.com/llvm/llvm-project/commit/f2d6d74cd2a8dccc5ec47bb5debb003e06249db3
  Author: Martin Storsjö <martin at martin.st>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M lld/test/COFF/lib.test
    M llvm/include/llvm/Object/COFFImportFile.h
    M llvm/lib/Object/COFFImportFile.cpp
    M llvm/lib/ToolDrivers/llvm-dlltool/DlltoolDriver.cpp
    M llvm/test/tools/llvm-dlltool/coff-decorated.def
    M llvm/test/tools/llvm-dlltool/coff-weak-exports.def
    A llvm/test/tools/llvm-dlltool/renaming.def

  Log Message:
  -----------
  [llvm-dlltool] Fix renamed imports without a separate regular import entry (#98229)

Normally, when doing renamed imports, we do this by providing a
weak alias, towards another regular import, for the symbol we
want to actually import. In a def file, this looks like this:

    regularfunc
    renamedfunc == regularfunc

However, if we want to link against a function in a DLL, where we
(intentionally) don't provide a regular import for that symbol
with the name in its DLL, doing the renamed import with a weak
alias doesn't work, as there's no symbol that the weak alias can
point towards.

We can't make up such an import either, as we may intentionally
not want to provide a regular import for that name.

This situation can either be resolved by using the "long" import
library format (as e.g. produced by GNU dlltool), or by using the
new short import library name type "export as".

This patch implements it by using the "export as" name type.

When producing a renamed import, defer emitting it until all regular
imports have been produced. If the renamed import refers to a
symbol that does exist as a regular import entry, produce a
weak alias, just as before. (This implementation also avoids needing
to know whether the symbol that the alias points towards actually
is prefixed or not, too.)

If the renamed import points at a symbol that isn't otherwise
available (or is available as a renamed symbol itself), generate
an "export as" import entry.

This name type is new, and is normally used in ARM64EC import
libraries, but can also be used for other architectures.


  Commit: b7b77b0fe878d5620b042818cf527267521e51f5
      https://github.com/llvm/llvm-project/commit/b7b77b0fe878d5620b042818cf527267521e51f5
  Author: Zequan Wu <zequanwu at google.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
    M lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.h
    M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
    M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h
    M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.h
    M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.cpp
    M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.h
    M lldb/source/Plugins/SymbolFile/DWARF/UniqueDWARFASTType.cpp
    M lldb/source/Plugins/SymbolFile/DWARF/UniqueDWARFASTType.h
    A lldb/test/Shell/SymbolFile/DWARF/delayed-definition-die-searching.test
    R lldb/test/Shell/SymbolFile/DWARF/x86/simple-template-names-context.cpp
    A lldb/test/Shell/SymbolFile/DWARF/x86/type-definition-search.cpp

  Log Message:
  -----------
  Reapply [lldb][DWARF] Delay struct/class/union definition DIE searching when parsing declaration DIEs. (#98361)

This is a reapply of https://github.com/llvm/llvm-project/pull/92328 and
https://github.com/llvm/llvm-project/pull/93839.

It now passes the
[test](https://github.com/llvm/llvm-project/commit/de3f1b6d68ab8a0e827db84b328803857a4f60df),
which crashes with the original reverted changes.


  Commit: 9be5f4f5d5617d11e96fe53e8c3f463252486641
      https://github.com/llvm/llvm-project/commit/9be5f4f5d5617d11e96fe53e8c3f463252486641
  Author: Justin Bogner <mail at justinbogner.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M clang/docs/HLSL/HLSLIRReference.rst
    M clang/docs/HLSL/ResourceTypes.rst
    A llvm/docs/DirectX/DXILResources.rst
    M llvm/docs/DirectXUsage.rst

  Log Message:
  -----------
  [DirectX] Start documenting DXIL Resource handling (#90553)

This adds a new document about DXIL Resource Handling. I've attempted to
describe here how we intend to use TargetExtTypes to represent resources
in LLVM IR and the various intrinsics we'll need to lower these through
LLVM to DXIL.

For now this document is limited to the high level concepts and a few
details on buffer types, and there are a number of TODOs in the document
that we'll iterate on as we progress in the implementation.


  Commit: 4199f80df58624bbd8491688b4ab6aefdfec2726
      https://github.com/llvm/llvm-project/commit/4199f80df58624bbd8491688b4ab6aefdfec2726
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/test/Analysis/LoopAccessAnalysis/load-store-index-loaded-in-loop.ll

  Log Message:
  -----------
  [LAA] Adjust test from a4f8705b05 so RT checks aren't always false.

Updated @B_indices_loaded_in_loop_A_stored to use a different offset
for one of the accesses we create runtime checks for; the original
version had a runtime check that was always true as the accesses always
overlapped.


  Commit: 434c2382f11e21b0c7ad2fda8ae66cd65c471463
      https://github.com/llvm/llvm-project/commit/434c2382f11e21b0c7ad2fda8ae66cd65c471463
  Author: Daniel Thornburgh <dthorn at google.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M compiler-rt/lib/tsan/rtl/tsan_defs.h
    M compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp
    M compiler-rt/lib/tsan/rtl/tsan_interface_ann.cpp
    M compiler-rt/lib/tsan/rtl/tsan_mman.cpp
    M compiler-rt/lib/tsan/rtl/tsan_platform_mac.cpp
    M compiler-rt/lib/tsan/rtl/tsan_rtl.cpp
    M compiler-rt/lib/tsan/rtl/tsan_rtl.h
    M compiler-rt/lib/tsan/rtl/tsan_suppressions.cpp
    M compiler-rt/lib/tsan/rtl/tsan_vector_clock.h

  Log Message:
  -----------
  Revert "[tsan] Replace ALIGNED with alignas" (#99240)

Reverts llvm/llvm-project#98959


  Commit: f7cee44ef2a2bf62f3c939d5686c45c71f3b14bc
      https://github.com/llvm/llvm-project/commit/f7cee44ef2a2bf62f3c939d5686c45c71f3b14bc
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M libc/config/gpu/entrypoints.txt
    M libc/include/llvm-libc-macros/generic-error-number-macros.h
    M libc/src/__support/StringUtil/tables/stdc_errors.h
    M libc/test/src/string/strerror_test.cpp

  Log Message:
  -----------
  [libc] Add `strerror` and `strerror_k` to the GPU (#99083)

Summary:
The GPU ignores `errno` primarily, but targets want these functions to
be defined for certain C standard interfaces. This patch enables them
and makes the test function on non-Linux targets.


  Commit: 8393ea5d1dd8e8b56a87a6edbca31fb8722cee48
      https://github.com/llvm/llvm-project/commit/8393ea5d1dd8e8b56a87a6edbca31fb8722cee48
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M libc/config/gpu/entrypoints.txt
    M libc/docs/gpu/support.rst
    M libc/include/llvm-libc-macros/gpu/time-macros.h
    M libc/include/time.h.def
    M libc/src/time/gpu/CMakeLists.txt
    A libc/src/time/gpu/clock_gettime.cpp
    M libc/test/src/time/CMakeLists.txt
    M libc/test/src/time/clock_gettime_test.cpp

  Log Message:
  -----------
  [libc] Implement `clock_gettime` for the monotonic clock on the GPU (#99067)

Summary:
This patch implements `clock_gettime` using the monotonic clock. This
allows users to get time elapsed at nanosecond resolution. This is
primarily to facilitate compiling the `chrono` library from `libc++`.
For this reason we provide both `CLOCK_MONOTONIC`, which we can
implement
with the GPU's global fixed-frequency clock, and `CLOCK_REALTIME` which
we cannot. The latter is provided just to make people who use this
header happy and it will always return failure.


  Commit: 898c116add170afb832d7f2f6bcfdc0daa6765f1
      https://github.com/llvm/llvm-project/commit/898c116add170afb832d7f2f6bcfdc0daa6765f1
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

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

  Log Message:
  -----------
  [tsan] Avoid ALIGNED in tsan_platform_mac.cpp. NFC


  Commit: 41553876d3cf31e709039cb3ba95d279ae0b217e
      https://github.com/llvm/llvm-project/commit/41553876d3cf31e709039cb3ba95d279ae0b217e
  Author: David CARLIER <devnexen at gmail.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc
    M compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h
    A compiler-rt/test/sanitizer_common/TestCases/Linux/preadv2.cpp

  Log Message:
  -----------
  Preadv2 pwritev2 san reapply (#99089)


  Commit: 7bb6bb9a1f9f1613cc422d99fd9b9dacb1b329ec
      https://github.com/llvm/llvm-project/commit/7bb6bb9a1f9f1613cc422d99fd9b9dacb1b329ec
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M compiler-rt/lib/tsan/rtl/tsan_defs.h
    M compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp
    M compiler-rt/lib/tsan/rtl/tsan_interface_ann.cpp
    M compiler-rt/lib/tsan/rtl/tsan_mman.cpp
    M compiler-rt/lib/tsan/rtl/tsan_rtl.cpp
    M compiler-rt/lib/tsan/rtl/tsan_rtl.h
    M compiler-rt/lib/tsan/rtl/tsan_suppressions.cpp
    M compiler-rt/lib/tsan/rtl/tsan_vector_clock.h

  Log Message:
  -----------
  [tsan] Replace ALIGNED with alignas

Similar to #98958.

The relands 656f617ac772c54e0bee9d499e7ca232137ddb35 , which
was reverted due to an issue in tsan_platform_mac.cpp

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


  Commit: 49b2c30feb3730ccb1ba075dd37e68d47095bb23
      https://github.com/llvm/llvm-project/commit/49b2c30feb3730ccb1ba075dd37e68d47095bb23
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M libc/docs/gpu/support.rst

  Log Message:
  -----------
  [libc][docs] Document printf support on the GPU target (#99241)

Summary:
Title


  Commit: e215cf70998f299a0859d64b35c7f8f29bd478c6
      https://github.com/llvm/llvm-project/commit/e215cf70998f299a0859d64b35c7f8f29bd478c6
  Author: Keith Smiley <keithbsmiley at gmail.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

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

  Log Message:
  -----------
  [bazel] Port changes from main (#99247)

This ports 5f8c46b88799a710f98c00d377d7edc34096f85d and
4531f82c1ad905614c1df9359a77d48e6397fd97


  Commit: f761e50a98f4123f6a57d8e9c3be64e5e39a16fe
      https://github.com/llvm/llvm-project/commit/f761e50a98f4123f6a57d8e9c3be64e5e39a16fe
  Author: Petr Hosek <phosek at google.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

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

  Log Message:
  -----------
  [CMake][Fuchsia] Use escaped double quote (#99246)

Using single quotes made the build to break on Windows.


  Commit: c4610580adaefe76b3c14589b2d4d4c134609f67
      https://github.com/llvm/llvm-project/commit/c4610580adaefe76b3c14589b2d4d4c134609f67
  Author: PeterChou1 <peter.chou at mail.utoronto.ca>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    A clang-tools-extra/test/clang-doc/namespace.cpp

  Log Message:
  -----------
  [clang-doc] add nested namespace test case (#97681)

This patch adds a test to clang-doc which test the nested namespace
generation of clang-doc


  Commit: eab37384c151c7eabbffb65e5a053b58f88c8b5d
      https://github.com/llvm/llvm-project/commit/eab37384c151c7eabbffb65e5a053b58f88c8b5d
  Author: PeterChou1 <peter.chou at mail.utoronto.ca>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    A clang-tools-extra/test/clang-doc/enum.cpp

  Log Message:
  -----------
  [clang-doc] add enum test (#97679)

This patch adds a test which test the enum generation for clang-doc.


  Commit: e8ab4132598cd925263137adfad510b411459907
      https://github.com/llvm/llvm-project/commit/e8ab4132598cd925263137adfad510b411459907
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M clang/test/Driver/print-supported-extensions-riscv.c
    M llvm/lib/Target/RISCV/RISCVFeatures.td
    M llvm/test/MC/RISCV/XTHeadVdot-valid.s

  Log Message:
  -----------
  [RISCV] Add capital letters to T-Head extension names in descriptions. (#99070)

This matches T-Head documentation and the capitalization we use for the
RISCVSubtarget methods.


  Commit: dbc3df17180782006be0ad6e43d3da81d98c2d4d
      https://github.com/llvm/llvm-project/commit/dbc3df17180782006be0ad6e43d3da81d98c2d4d
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

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

  Log Message:
  -----------
  [RISCV] Remove unnecessary call to MachineFunction::getSubtarget. NFC

RISCVInstrInfo already caches a reference to the subtarget object
that owns it. We can use that.


  Commit: 6ad2987a72392e9885e1186a34834041445e0a1e
      https://github.com/llvm/llvm-project/commit/6ad2987a72392e9885e1186a34834041445e0a1e
  Author: Daniel Bertalan <dani at danielbertalan.dev>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M lld/MachO/Driver.cpp
    M lld/MachO/ObjC.cpp
    M lld/test/MachO/dead-strip.s
    M lld/test/MachO/icf-safe.ll

  Log Message:
  -----------
  [lld-macho] Omit `__llvm_addrsig` metadata from the output (#98913)

This section contains metadata that's only relevant for Identical Code
Folding at link time, we should not include it in the output.

We still treat it like a regular section during input file parsing (e.g.
create a `ConcatInputSection` for it), as we want its relocations to be
parsed. But it should not be passed to `addInputSection`, as that's what
assigns it to an `OutputSection` and adds it to the `inputSections`
vector which specifies the inputs to dead-stripping and relocation
scanning.

This fixes a "__DATA,__llvm_addrsig, offset 0: fixups overlap" error
when using `--icf=safe` alongside `-fixup_chains`. This occurs because
all `__llvm_addrsig` sections are 8 bytes large, and the relocations
which signify functions whose addresses are taken are all at offset 0.

This makes the fix in 5fa24ac2 ("Category Merger: add support for
addrsig references") obsolete, as we no longer try to resolve symbols
referenced in `__llvm_addrsig` when writing the output file. When we do
iterate its relocations in `markAddrSigSymbols`, we do not try to
resolve their addresses.


  Commit: ffbda47159361cd089b8046ec634ace071e5493c
      https://github.com/llvm/llvm-project/commit/ffbda47159361cd089b8046ec634ace071e5493c
  Author: Jie Fu <jiefu at tencent.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M mlir/include/mlir/CAPI/Rewrite.h

  Log Message:
  -----------
  [mlir] Fix build error (NFC)

/llvm-project/mlir/include/mlir/CAPI/Rewrite.h:21:63:
error: extra ';' outside of a function is incompatible with C++98 [-Werror,-Wc++98-compat-extra-semi]
DEFINE_C_API_PTR_METHODS(MlirRewriterBase, mlir::RewriterBase);
                                                              ^
1 error generated.


  Commit: bed625b0ad6722e1d29a3ea492dda173eee541dd
      https://github.com/llvm/llvm-project/commit/bed625b0ad6722e1d29a3ea492dda173eee541dd
  Author: Dmitriy Chestnykh <dm.chestnykh at gmail.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/lib/MC/MCParser/AsmLexer.cpp
    M llvm/lib/MC/MCParser/AsmParser.cpp
    A llvm/test/MC/ELF/warn-newline-in-escaped-string.s

  Log Message:
  -----------
  [MC,ELF] Emit warning if a string constant contains newline char (#98060)

GAS emits warning about newline in the string constant so make the same
behaviour.


  Commit: f56cdd4a45b7bbe84be5d4ba9442eb7071605efc
      https://github.com/llvm/llvm-project/commit/f56cdd4a45b7bbe84be5d4ba9442eb7071605efc
  Author: Shilei Tian <i at tianshilei.me>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/test/Transforms/InstCombine/AMDGPU/select-from-load.ll

  Log Message:
  -----------
  [NFC] Use named variable for test case `select-from-load.ll`


  Commit: b6c4ad700b0f5851313f18df89b9da2c27ba3185
      https://github.com/llvm/llvm-project/commit/b6c4ad700b0f5851313f18df89b9da2c27ba3185
  Author: Yeting Kuo <46629943+yetingk at users.noreply.github.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/test/CodeGen/RISCV/fastcc-int.ll
    M llvm/test/CodeGen/RISCV/fastcc-without-f-reg.ll
    M llvm/test/CodeGen/RISCV/rvv/calling-conv-fastcc.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-calling-conv-fastcc.ll

  Log Message:
  -----------
  [RISCV] Remove x7 from fastcc list. (#96729)

Like #93321, this patch also tries to solve the conflict usage of x7 for
fastcc and Zicfilp. But this patch removes x7 from fastcc directly. Its
purpose is to reduce the code complexity of #93321, and we also found
that it at most increase 0.02% instruction count for most benchmarks and
it might be benefit for benchmarks.


  Commit: 746cea3eb741cae0cb90542d1580b7bacbf2a615
      https://github.com/llvm/llvm-project/commit/746cea3eb741cae0cb90542d1580b7bacbf2a615
  Author: Yeting Kuo <46629943+yetingk at users.noreply.github.com>
  Date:   2024-07-17 (Wed, 17 Jul 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/SelectionDAG/LegalizeIntegerTypes.cpp
    M llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
    M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
    M llvm/lib/IR/IntrinsicInst.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.h
    A llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vp-splat.ll
    A llvm/test/CodeGen/RISCV/rvv/vp-splat.ll
    M llvm/unittests/IR/VPIntrinsicTest.cpp

  Log Message:
  -----------
  [VP][RISCV] Introduce vp.splat and RISC-V. (#98731)

This patch introduces a vp intrinsic for splat. It's helpful for
IR-level passes to create a splat with specific vector length.


  Commit: cf6233f408029835488e1b4f2aad8cfa69e57c22
      https://github.com/llvm/llvm-project/commit/cf6233f408029835488e1b4f2aad8cfa69e57c22
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M lld/COFF/LTO.cpp
    M lld/test/COFF/lto-emit-llvm.ll

  Log Message:
  -----------
  [lld-link] Change /lldemit:llvm to use the pre-codegen module

This matches ELF (#97480). clang cc1 -emit-llvm and -emit-llvm-bc for
ThinLTO backend compilation also uses `PreCodeGenModuleHook`.

While here, replace deprecated %T with %t.

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


  Commit: b042af363bcdfa5e7e3d7dd424a561a041ac8f02
      https://github.com/llvm/llvm-project/commit/b042af363bcdfa5e7e3d7dd424a561a041ac8f02
  Author: Allen <zhongyunde at huawei.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    A clang/test/CodeGen/math-libcalls-tbaa.cpp

  Log Message:
  -----------
  [clang codegen] Precommit tests for PR96025, NFC (#98704)

Add extern "C" for the function because there is difference function naming rules between Linux and Windows


  Commit: befd44bcdc6e9d2f4099bf344826b2cd0fd8cbdc
      https://github.com/llvm/llvm-project/commit/befd44bcdc6e9d2f4099bf344826b2cd0fd8cbdc
  Author: Carl Ritson <carl.ritson at amd.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
    M llvm/lib/Target/AMDGPU/SIInstrInfo.h
    M llvm/test/CodeGen/AMDGPU/insert-skips-gfx10.mir
    M llvm/test/CodeGen/AMDGPU/insert-skips-gfx12.mir

  Log Message:
  -----------
  [AMDGPU] Update hasUnwantedEffectsWhenEXECEmpty (#97982)

Add barriers and s_wait_event to hasUnwantedEffectsWhenEXECEmpty.
Add a comment documenting the current expected use of the function.


  Commit: 1b873e565eea97d02cdb2375c50ceea89a818e5b
      https://github.com/llvm/llvm-project/commit/1b873e565eea97d02cdb2375c50ceea89a818e5b
  Author: paperchalice <liujunchang97 at outlook.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/include/llvm/CodeGen/MachineBasicBlock.h
    A llvm/include/llvm/CodeGen/PHIElimination.h
    M llvm/include/llvm/Passes/CodeGenPassBuilder.h
    M llvm/include/llvm/Passes/MachinePassRegistry.def
    M llvm/lib/CodeGen/MachineBasicBlock.cpp
    M llvm/lib/CodeGen/PHIElimination.cpp
    M llvm/lib/Passes/PassBuilder.cpp
    M llvm/test/CodeGen/AArch64/PHIElimination-crash.mir
    M llvm/test/CodeGen/AArch64/PHIElimination-debugloc.mir
    M llvm/test/CodeGen/AMDGPU/phi-elimination-assertion.mir
    M llvm/test/CodeGen/AMDGPU/phi-elimination-end-cf.mir
    M llvm/test/CodeGen/AMDGPU/split-mbb-lis-subrange.mir
    M llvm/test/CodeGen/AMDGPU/stale-livevar-in-twoaddr-pass.mir
    M llvm/test/CodeGen/PowerPC/2013-07-01-PHIElimBug.mir
    M llvm/test/CodeGen/PowerPC/livevars-crash1.mir
    M llvm/test/CodeGen/PowerPC/livevars-crash2.mir
    M llvm/test/CodeGen/PowerPC/phi-eliminate.mir
    M llvm/test/CodeGen/PowerPC/two-address-crash.mir
    M llvm/test/CodeGen/Thumb2/phi_prevent_copy.mir
    M llvm/test/CodeGen/X86/callbr-asm-kill.mir
    M llvm/test/CodeGen/X86/phielim-undef.mir

  Log Message:
  -----------
  [CodeGen][NewPM] Port `phi-node-elimination` to new pass manager (#98867)

- Add `PHIEliminationPass `.
- Support new pass manager in `MachineBasicBlock:: SplitCriticalEdge `


  Commit: 484fdb901f2cc39b122489508009947910001213
      https://github.com/llvm/llvm-project/commit/484fdb901f2cc39b122489508009947910001213
  Author: Allen <zhongyunde at huawei.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M clang/test/CodeGen/math-libcalls-tbaa.cpp

  Log Message:
  -----------
  [clang codegen] Fix the ci fail for PR98704 (#99267)

Different targets may have different flag on arguments, so restrict the
triple to avoid ci fail.


  Commit: 493d504b35b9f655177b81ef3848e4a08a17831a
      https://github.com/llvm/llvm-project/commit/493d504b35b9f655177b81ef3848e4a08a17831a
  Author: Thorsten Schütt <schuett at gmail.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/test/MachineVerifier/test_g_extract_subvector.mir
    M llvm/test/MachineVerifier/test_g_insert_subvector.mir
    M llvm/test/MachineVerifier/test_g_vscale.mir

  Log Message:
  -----------
  [GlobalIsel] Fix Machine Verifier errors (#99018)

temporary solution.
For discussion see https://github.com/llvm/llvm-project/pull/98894

Permanent solution could be:
REQUIRES: default_triple


  Commit: 3850912fee9a14990bc3d72dc2654b03f9e2ab87
      https://github.com/llvm/llvm-project/commit/3850912fee9a14990bc3d72dc2654b03f9e2ab87
  Author: hev <wangrui at loongson.cn>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/lib/Target/LoongArch/LoongArchTargetMachine.cpp
    M llvm/test/CodeGen/LoongArch/andn-icmp.ll
    M llvm/test/CodeGen/LoongArch/opt-pipeline.ll
    M llvm/test/CodeGen/LoongArch/typepromotion-overflow.ll

  Log Message:
  -----------
  [LoongArch] Enable the TypePromotion pass from AArch64 (#98868)


  Commit: 9e9924cc2e0d0f03def09e02e7344d10066eb1b6
      https://github.com/llvm/llvm-project/commit/9e9924cc2e0d0f03def09e02e7344d10066eb1b6
  Author: Luke Lau <luke at igalia.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
    M llvm/lib/Target/RISCV/RISCVInstrInfo.h
    M llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
    M llvm/test/CodeGen/RISCV/rvv/combine-vmv.ll
    M llvm/test/CodeGen/RISCV/rvv/rvv-peephole-vmerge-vops.ll

  Log Message:
  -----------
  [RISCV] Don't fold vmerge.vvm or vmv.v.v into vredsum.vs if AVL changed (#99006)

When folding, we currently check if the pseudo's result is not lanewise
(e.g. vredsum.vs or viota.m) and bail if we're changing the mask.
However we also need to check for the AVL too.

This patch bails if the AVL changed for these pseudos, and also renames
the pseudo table property to be more explicit.


  Commit: 6192f458f4fd2ca4e6f01515547034f89325e73c
      https://github.com/llvm/llvm-project/commit/6192f458f4fd2ca4e6f01515547034f89325e73c
  Author: Petr Hosek <phosek at google.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M libcxx/include/__mutex/lock_guard.h
    M libcxx/include/__mutex/tag_types.h
    R libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/adopt_lock.pass.cpp
    R libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/assign.compile.fail.cpp
    A libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/assign.compile.pass.cpp
    R libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/copy.compile.fail.cpp
    A libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/copy.compile.pass.cpp
    A libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/ctor.adopt_lock.pass.cpp
    A libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/ctor.mutex.pass.cpp
    M libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/implicit_ctad.pass.cpp
    R libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/mutex.pass.cpp
    R libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/mutex.verify.cpp
    A libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/std.mutex.pass.cpp
    A libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/types.compile.pass.cpp
    A libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/types.h
    R libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/types.pass.cpp

  Log Message:
  -----------
  [libc++] Make `std::lock_guard` available with `_LIBCPP_HAS_NO_THREADS` (#98717)

This change makes `std::lock_guard` available when
`_LIBCPP_HAS_NO_THREADS` is set. This class is generic and doesn't
require threading support, and is regularly used even in environments
where threading isn't available like embedded.

fixes #89891

---------

Co-authored-by: Louis Dionne <ldionne.2 at gmail.com>


  Commit: 6d26e574241e04264c10e15781c0788363f3e015
      https://github.com/llvm/llvm-project/commit/6d26e574241e04264c10e15781c0788363f3e015
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

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

  Log Message:
  -----------
  [RISCV] Remove accidentally duplicated isel patterns. NFC

VPatIntegerSetCCSDNode_XI_Swappable inherited from
VPatIntegerSetCCSDNode_XI and contained the same patterns.


  Commit: 8ca7e24b359ab2b6d2868f9252c7cd11eb48c787
      https://github.com/llvm/llvm-project/commit/8ca7e24b359ab2b6d2868f9252c7cd11eb48c787
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td
    M llvm/test/CodeGen/RISCV/rvv/cttz-sdnode.ll

  Log Message:
  -----------
  [RISCV] Add more vector setcc VI isel patterns.

Add more patterns isel patterns for vmseq.vi and friends with
the constant splat on the left hand side.

We can't trust the canonicalization in SimplifySetCC to keep constants
to the RHS when the splat is VMV_V_X_VL for i64 on RV32.


  Commit: f0ac8903ea1c1d664d1fae16ed00e096c713aaee
      https://github.com/llvm/llvm-project/commit/f0ac8903ea1c1d664d1fae16ed00e096c713aaee
  Author: Piotr Fusik <p.fusik at samsung.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

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

  Log Message:
  -----------
  [RISCV][NFC] Fix intrinsic misspelled in a comment (#98998)


  Commit: 3fe50b6dde174c76b3380927d7dd43ac19527d64
      https://github.com/llvm/llvm-project/commit/3fe50b6dde174c76b3380927d7dd43ac19527d64
  Author: Amir Ayupov <aaupov at fb.com>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M bolt/include/bolt/Rewrite/RewriteInstance.h
    M bolt/lib/Rewrite/RewriteInstance.cpp
    A bolt/test/X86/Inputs/ambiguous_fragment.s
    A bolt/test/X86/Inputs/ambiguous_fragment.script
    A bolt/test/X86/ambiguous_fragment.test

  Log Message:
  -----------
  [BOLT] Store FileSymRefs in a multimap

With aggressive ICF, it's possible to have different local symbols
(under different FILE symbols) to be mapped to the same address.

FileSymRefs only keeps a single SymbolRef per address, which prevents
fragment matching from finding the correct symbol to perform parent
function lookup.

Work around this issue by switching FileSymRefs to a multimap. In
future, uses of FileSymRefs can be replaced with SortedSymbols which
keeps essentially the same information.

Test Plan: added ambiguous_fragment.test

Reviewers: dcci, ayermolo, maksfb, rafaelauler

Reviewed By: rafaelauler

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


  Commit: 20861f1f2fdc5d9aaa76140ade96f7edfdefb0e1
      https://github.com/llvm/llvm-project/commit/20861f1f2fdc5d9aaa76140ade96f7edfdefb0e1
  Author: Guray Ozen <guray.ozen at gmail.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M mlir/lib/ExecutionEngine/CudaRuntimeWrappers.cpp
    A mlir/test/Integration/GPU/CUDA/alloc-host-shared.mlir

  Log Message:
  -----------
  [mlir][gpu] Use alloc OP's `host_shared` in cuda runtime (#99035)


  Commit: e316f1956992730fa601849799ccb12d17f507d7
      https://github.com/llvm/llvm-project/commit/e316f1956992730fa601849799ccb12d17f507d7
  Author: WANG Rui <wangrui at loongson.cn>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/test/CodeGen/LoongArch/andn-icmp.ll

  Log Message:
  -----------
  [LoongArch] Pre-commit tests for spurious mask removal. NFC


  Commit: b330d800cb7917e537b05a23febfe188401c5628
      https://github.com/llvm/llvm-project/commit/b330d800cb7917e537b05a23febfe188401c5628
  Author: cor3ntin <corentinjabot at gmail.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/Sema/Sema.h
    M clang/include/clang/Sema/SemaConcept.h
    M clang/lib/Sema/SemaConcept.cpp
    M clang/lib/Sema/SemaTemplateVariadic.cpp
    A clang/test/SemaCXX/cxx2c-fold-exprs.cpp
    M clang/www/cxx_status.html

  Log Message:
  -----------
  Reapply [Clang][C++26] Implement "Ordering of constraints involving fold expressions (#99022)

Implement https://isocpp.org/files/papers/P2963R3.pdf


  Commit: f10a78b7e48f9067bc2e5a67ea2166b707701f29
      https://github.com/llvm/llvm-project/commit/f10a78b7e48f9067bc2e5a67ea2166b707701f29
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
    M llvm/lib/Target/AMDGPU/AMDGPULibFunc.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp
    M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp

  Log Message:
  -----------
  [AMDGPU] clang-tidy: use std::make_unique. NFC.


  Commit: 31087c5e4c8ddfe08ab3ea6d3847e05c4738eeee
      https://github.com/llvm/llvm-project/commit/31087c5e4c8ddfe08ab3ea6d3847e05c4738eeee
  Author: jeanPerier <jperier at nvidia.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M flang/include/flang/Optimizer/Builder/FIRBuilder.h
    M flang/include/flang/Optimizer/Dialect/FIROps.td
    A flang/include/flang/Optimizer/Transforms/MemoryUtils.h
    M flang/lib/Optimizer/Builder/FIRBuilder.cpp
    M flang/lib/Optimizer/Dialect/FIROps.cpp
    M flang/lib/Optimizer/Transforms/CMakeLists.txt
    M flang/lib/Optimizer/Transforms/MemoryAllocation.cpp
    A flang/lib/Optimizer/Transforms/MemoryUtils.cpp
    A flang/test/Fir/memory-allocation-opt-2.fir

  Log Message:
  -----------
  [flang] handle alloca outside of entry blocks in MemoryAllocation (#98457)

This patch generalizes the MemoryAllocation pass (alloca -> heap) to
handle fir.alloca regardless of their postion in the IR. Currently, it
only dealt with fir.alloca in function entry blocks. The logic is placed
in a utility that can be used to replace alloca in an operation on
demand to whatever kind of allocation the utility user wants via
callbacks (allocmem, or custom runtime calls to instrument the code...).

To do so, a concept of ownership, that was already implied a bit and
used in passes like stack-reclaim, is formalized. Any operation with the
LoopLikeInterface, AutomaticAllocationScope, or IsolatedFromAbove owns
the alloca directly nested inside its regions, and they must not be used
after the operation.

The pass then looks for the exit points of region with such interface,
and use that to insert deallocation. If dominance is not proved, the
pass fallbacks to storing the new address into a C pointer variable
created in the entry of the owning region which allows inserting
deallocation as needed, included near the alloca itself to avoid leaks
when the alloca is executed multiple times due to block CFGs loops.

This should fix https://github.com/llvm/llvm-project/issues/88344.

In a next step, I will try to refactor lowering a bit to introduce
lifetime operation for alloca so that the deallocation points can be
inserted as soon as possible.


  Commit: 578c6191eff7c69608cf5e363460f60a890d4065
      https://github.com/llvm/llvm-project/commit/578c6191eff7c69608cf5e363460f60a890d4065
  Author: Nikolas Klauser <nikolasklauser at berlin.de>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M libcxx/include/__type_traits/is_void.h

  Log Message:
  -----------
  [libc++] Simplify std::is_void (#99033)


  Commit: f2251f93ab6977c2a2fc547b9301da2c2627c663
      https://github.com/llvm/llvm-project/commit/f2251f93ab6977c2a2fc547b9301da2c2627c663
  Author: Guray Ozen <guray.ozen at gmail.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M mlir/test/Integration/GPU/CUDA/alloc-host-shared.mlir

  Log Message:
  -----------
  [mlir][gpu] Add mlir_c_runner_utils to fix #99035

This fixes the unit test that is broken in #99035.


  Commit: 863ad5af2d2e99dfb370bf370079e452212807ac
      https://github.com/llvm/llvm-project/commit/863ad5af2d2e99dfb370bf370079e452212807ac
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M clang/lib/AST/Interp/Interp.h
    M clang/lib/AST/Interp/InterpBlock.h

  Log Message:
  -----------
  [clang][Interp][NFC] Remove Block::deref()

We already have Pointer::deref()


  Commit: d3dab0cb8dd04a16e10b5f29b968d50749dcb2c2
      https://github.com/llvm/llvm-project/commit/d3dab0cb8dd04a16e10b5f29b968d50749dcb2c2
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M clang/lib/AST/Interp/InterpBlock.h
    M clang/lib/AST/Interp/InterpFrame.cpp
    M clang/lib/AST/Interp/InterpState.cpp

  Log Message:
  -----------
  [clang][Interp][NFC] Assert initialization state in invoke{C,D}tor


  Commit: 5e338f1f4ae28b9dd7d722a77ab204e358006a86
      https://github.com/llvm/llvm-project/commit/5e338f1f4ae28b9dd7d722a77ab204e358006a86
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUIGroupLP.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUSplitModule.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUUnifyDivergentExitNodes.cpp
    M llvm/lib/Target/AMDGPU/R600EmitClauseMarkers.cpp
    M llvm/lib/Target/AMDGPU/R600InstrInfo.cpp
    M llvm/lib/Target/AMDGPU/R600OptimizeVectorRegisters.cpp
    M llvm/lib/Target/AMDGPU/SILowerSGPRSpills.cpp
    M llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp
    M llvm/lib/Target/AMDGPU/SIMachineScheduler.cpp
    M llvm/lib/Target/AMDGPU/SIWholeQuadMode.cpp
    M llvm/lib/Target/AMDGPU/Utils/AMDGPUDelayedMCExpr.cpp

  Log Message:
  -----------
  [AMDGPU] clang-tidy: use emplace_back instead of push_back. NFC.


  Commit: a5b5208ba627da46310db67af0dcbb0a824fab92
      https://github.com/llvm/llvm-project/commit/a5b5208ba627da46310db67af0dcbb0a824fab92
  Author: Mariya Podchishchaeva <mariya.podchishchaeva at intel.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M clang/lib/Sema/SemaInit.cpp
    M clang/test/Preprocessor/embed_codegen.cpp
    M clang/test/Preprocessor/embed_constexpr.cpp

  Log Message:
  -----------
  [clang] Be careful when choosing "fast path" for initialization with #embed (#99023)

When #embed appears in an initializer list, we may choose a "fast path"
if the target declaration is a char array. We simply initialize it with
string literal that contains embedded data. However we need to be
careful when checking that we actually can use this "fast path" since
char array may be nested in a struct.


  Commit: 0905732f75cb0f774972c721810aba74021102f2
      https://github.com/llvm/llvm-project/commit/0905732f75cb0f774972c721810aba74021102f2
  Author: Abe <abe149 at gmail.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M clang-tools-extra/docs/modularize.rst

  Log Message:
  -----------
  [clang-tools-extra] Fix typos in Modularize.rst (#99256)

mainly, fixed “the Clang module mechanism doesn’t support headers the
rely on other headers” => “the Clang module mechanism doesn’t support
headers that rely on other headers”. [emphasis on “the” versus “that”]


  Commit: caaf8099efa87a7ebca8920971b7d7f719808591
      https://github.com/llvm/llvm-project/commit/caaf8099efa87a7ebca8920971b7d7f719808591
  Author: Jan Patrick Lehr <JanPatrick.Lehr at amd.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M offload/include/OpenMP/OMPT/Interface.h
    M offload/src/OpenMP/API.cpp
    M offload/src/OpenMP/OMPT/Callback.cpp
    A offload/test/ompt/omp_api.c

  Log Message:
  -----------
  [Offload][OMPT] Add callbacks for (dis)associate_ptr (#99046)

This adds the OMPT callbacks for the API functions disassociate_ptr and
associate_ptr.


  Commit: d28ed29d6bd9f0389092775406fff7e6205d4d5f
      https://github.com/llvm/llvm-project/commit/d28ed29d6bd9f0389092775406fff7e6205d4d5f
  Author: Sam Parker <sam.parker at arm.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/include/llvm/Analysis/TargetTransformInfo.h
    M llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
    M llvm/include/llvm/Transforms/Utils/LoopUtils.h
    M llvm/lib/Analysis/TargetTransformInfo.cpp
    M llvm/lib/CodeGen/ExpandReductions.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.h
    M llvm/lib/Transforms/Utils/LoopUtils.cpp
    A llvm/test/CodeGen/WebAssembly/vector-reduce.ll

  Log Message:
  -----------
  [TTI][WebAssembly] Pairwise reduction expansion (#93948)

WebAssembly doesn't support horizontal operations nor does it have a way
of expressing fast-math or reassoc flags, so runtimes are currently
unable to use pairwise operations when generating code from the existing
shuffle patterns.

This patch allows the backend to select which, arbitary, shuffle pattern
to be used per reduction intrinsic. The default behaviour is the same as
the existing, which is by splitting the vector into a top and bottom
half. The other pattern introduced is for a pairwise shuffle.

WebAssembly enables pairwise reductions for int/fp add/sub.


  Commit: f270a4dd6667759d7305797a077ae09648318ac7
      https://github.com/llvm/llvm-project/commit/f270a4dd6667759d7305797a077ae09648318ac7
  Author: Amara Emerson <amara at apple.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/include/llvm/CodeGen/Analysis.h
    M llvm/include/llvm/CodeGen/SelectionDAG.h
    M llvm/lib/CodeGen/Analysis.cpp
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
    M llvm/lib/Target/Hexagon/HexagonISelLowering.cpp
    M llvm/lib/Target/Lanai/LanaiISelLowering.cpp
    M llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
    M llvm/lib/Target/MSP430/MSP430ISelLowering.cpp
    M llvm/lib/Target/Mips/MipsISelLowering.cpp
    M llvm/lib/Target/PowerPC/PPCISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/Sparc/SparcISelLowering.cpp
    M llvm/lib/Target/SystemZ/SystemZISelLowering.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/lib/Target/X86/X86ISelLoweringCall.cpp
    M llvm/lib/Target/X86/X86SelectionDAGInfo.cpp
    M llvm/lib/Target/XCore/XCoreISelLowering.cpp
    A llvm/test/CodeGen/AArch64/no-tail-call-bzero-from-memset.ll

  Log Message:
  -----------
  [AArch64] Don't tail call memset if it would convert to a bzero. (#98969)

Well, not quite that simple. We can tc memset since it returns the first
argument but bzero doesn't do that and therefore we can end up
miscompiling.

This patch also refactors the logic out of isInTailCallPosition() into the callers.
As a result memcpy and memmove are also modified to do the same thing
for consistency.

rdar://131419786


  Commit: a751f653b40f2021f091a2f1ebcc2d91bc4cc89d
      https://github.com/llvm/llvm-project/commit/a751f653b40f2021f091a2f1ebcc2d91bc4cc89d
  Author: dlav-sc <daniil.avdeev at syntacore.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M lldb/source/Plugins/ABI/RISCV/ABISysV_riscv.cpp

  Log Message:
  -----------
  [lldb][RISCV] function prologue backtrace fix (#99043)

CreateFunctionEntryUnwindPlan RISCV ABI function fix needed to receive a
valid backtrace at the start of functions.

Fixed tests for RISCV target:

TestNumThreads.NumberOfThreadsTestCase
TestCPPExceptionBreakpoints.CPPBreakpointTestCase
TestStepThroughTrampoline.StepThroughTrampoline
TestOSPluginStepping.TestOSPluginStepping
TestSteppingOutWithArtificialFrames.TestArtificialFrameThreadStepOut1
TestStepAvoidsRegexp.StepAvoidsRegexTestCase
TestInlineStepping.TestInlineStepping
TestStepOverBreakpoint.StepOverBreakpointsTestCase
TestStepOverBreakpoint.StepOverBreakpointsTestCase
TestSteppingOutWithArtificialFrames.TestArtificialFrameThreadStepOut1
TestTailCallFrameSBAPI.TestTailCallFrameSBAPI
TestThreadPlanUserBreakpoint.ThreadPlanUserBreakpointsTestCase


  Commit: 8bf952d77fbe63f979e4293e95a5ca379e26eede
      https://github.com/llvm/llvm-project/commit/8bf952d77fbe63f979e4293e95a5ca379e26eede
  Author: David Spickett <david.spickett at linaro.org>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M flang/test/Lower/tune-cpu-llvm.f90

  Log Message:
  -----------
  [flang][test] Fix mtune test on AArch64 bots

The native architecture is AArch64 here so the pentium name won't
work even if you've got the x86 backend enabled.

https://lab.llvm.org/buildbot/#/builders/17/builds/898

Pass an explicit target for each run line to fix this.

Test added in f1d3fe7aae7867b5de96b84d6d26b5c9f02f209a / #98517


  Commit: 72b3d7bc87019ba7ef268ce322f90382f01b11af
      https://github.com/llvm/llvm-project/commit/72b3d7bc87019ba7ef268ce322f90382f01b11af
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M clang/lib/AST/Interp/Descriptor.cpp
    M clang/lib/AST/Interp/Descriptor.h

  Log Message:
  -----------
  [clang][Interp] Makre sure we don't overflow Descriptor::AllocSize

We allocate the metadata and the array elements in one allocation,
and we save its size in a field of type 'unsigned'. Makre sure the
full size of the allocation doesn't overflow the field.


  Commit: 7c597c0e691bb685a7b9ef01e3ccaad5e64a3e92
      https://github.com/llvm/llvm-project/commit/7c597c0e691bb685a7b9ef01e3ccaad5e64a3e92
  Author: Fraser Cormack <fraser at codeplay.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/utils/vim/syntax/llvm.vim

  Log Message:
  -----------
  [Utils][vim] Match vector 'splat' keyword (#99004)


  Commit: 2e56497bf7b2c848b2c43ce8c64e585bc006240a
      https://github.com/llvm/llvm-project/commit/2e56497bf7b2c848b2c43ce8c64e585bc006240a
  Author: Fraser Cormack <fraser at codeplay.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/utils/vim/syntax/llvm.vim

  Log Message:
  -----------
  [Utils][vim] Match more hexadecimal float constants (#99000)

The `0x[KLMHR]` syntax denotes different floating-point types: various
long doubles, half and bfloat.

See https://llvm.org/docs/LangRef.html#simple-constants for reference.


  Commit: c7309dadbf5a07353fa18a712895e3cfb48a78e7
      https://github.com/llvm/llvm-project/commit/c7309dadbf5a07353fa18a712895e3cfb48a78e7
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPUIGroupLP.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
    M llvm/lib/Target/AMDGPU/AMDGPULibCalls.cpp
    M llvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp
    M llvm/lib/Target/AMDGPU/R600EmitClauseMarkers.cpp
    M llvm/lib/Target/AMDGPU/R600MachineCFGStructurizer.cpp
    M llvm/lib/Target/AMDGPU/R600OpenCLImageTypeLoweringPass.cpp
    M llvm/lib/Target/AMDGPU/SIFixSGPRCopies.cpp
    M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
    M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
    M llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp

  Log Message:
  -----------
  [AMDGPU] Use range-based for loops. NFC. (#99047)


  Commit: de61875e9d276cdb1899c2bea818bca86025b35a
      https://github.com/llvm/llvm-project/commit/de61875e9d276cdb1899c2bea818bca86025b35a
  Author: Hugo Trachino <hugo.trachino at huawei.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M mlir/lib/Dialect/Vector/Transforms/VectorTransforms.cpp
    M mlir/test/Dialect/Vector/vector-transfer-flatten.mlir

  Log Message:
  -----------
  [MLIR][Vector] Generalize DropUnitDimFromElementwiseOps to non leading / trailing dimensions. (#98455)

Generalizes DropUnitDimFromElementwiseOps to support inner unit
dimensions.
This change stems from improving lowering of contractionOps for Arm SME.
Where we end up with inner unit dimensions on MulOp, BroadcastOp and
TransposeOp, preventing the generation of outerproducts.
discussed
[here](https://discourse.llvm.org/t/on-improving-arm-sme-lowering-resilience-in-mlir/78543/17?u=nujaa).

Fix after : https://github.com/llvm/llvm-project/pull/97652 showed an
unhandled edge case when all dimensions are one. The generated target
VectorType would be `vector<f32>` which is apparently not supported by
the mulf.
In case all dimensions are dropped, the target vectorType is
vector<1xf32>

---------

Co-authored-by: Benjamin Maxwell <macdue at dueutil.tech>


  Commit: 3941f652317d95cac203e64791bfa730de7bbd1e
      https://github.com/llvm/llvm-project/commit/3941f652317d95cac203e64791bfa730de7bbd1e
  Author: Sylvestre Ledru <sylvestre at debian.org>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/lib/Target/M68k/M68kISelLowering.cpp

  Log Message:
  -----------
  adjust the m86k backend after change f270a4dd6667759d7305797a077ae09648318ac7


  Commit: aa21ee7926a265c705b00bae186cf8adf0ca7410
      https://github.com/llvm/llvm-project/commit/aa21ee7926a265c705b00bae186cf8adf0ca7410
  Author: Finlay <finlay.marno at codeplay.com>
  Date:   2024-07-17 (Wed, 17 Jul 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
    M mlir/test/Target/LLVMIR/llvmir.mlir

  Log Message:
  -----------
  [MLIR] Add attributes no_unwind and will_return to the LLVMIR dialect (#98921)

And testing.
These are being added to be used in the GPU to LLVM SPV pass.

---------

Co-authored-by: Victor Perez <victor.perez at codeplay.com>


  Commit: 39d751ad976ba9f5e8a1ad3880559faba38c3c3f
      https://github.com/llvm/llvm-project/commit/39d751ad976ba9f5e8a1ad3880559faba38c3c3f
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M clang/lib/AST/Interp/Pointer.cpp
    M clang/test/AST/Interp/functions.cpp

  Log Message:
  -----------
  [clang][Interp] Use an array root's field decl in the LValuePath

Instead of pushing the index 0.


  Commit: cf673604c16cc3aeee604642a2c6ea30b0eeeaba
      https://github.com/llvm/llvm-project/commit/cf673604c16cc3aeee604642a2c6ea30b0eeeaba
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

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

  Log Message:
  -----------
  [LV] Use VF from selected plan when creating InnerLoopVectorizer.

This makes sure the same VF is used when executing the plan and in the
functions in InnerLoopVectorizer when the assertion is disabled (e.g.
release builds).

No tests added as they would trigger an assertion.


  Commit: 35a3b665bb321b114fb15a7c38065ad8a67e5ef6
      https://github.com/llvm/llvm-project/commit/35a3b665bb321b114fb15a7c38065ad8a67e5ef6
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/oddshuffles.ll
    M llvm/test/CodeGen/X86/shuffle-strided-with-offset-512.ll
    M llvm/test/CodeGen/X86/shuffle-vs-trunc-512.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i16-stride-2.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-i8-stride-2.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-i8-stride-6.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i8-stride-8.ll
    M llvm/test/CodeGen/X86/vector-shuffle-256-v16.ll
    M llvm/test/CodeGen/X86/vector-shuffle-256-v32.ll

  Log Message:
  -----------
  [X86] Fold blend(pshufb(x,m1),pshufb(y,m2)) -> blend(pshufb(x,blend(m1,m2)),pshufb(y,blend(m1,m2))) to reduce constant pool (#98466)

Share PSHUFB masks where we have no overlap in used elements.

Fixes #98346


  Commit: f56db7860b38ac73310039b44770e844e4cb613d
      https://github.com/llvm/llvm-project/commit/f56db7860b38ac73310039b44770e844e4cb613d
  Author: Benji Smith <6193112+Benjins at users.noreply.github.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/docs/ReleaseNotes.rst
    M llvm/include/llvm-c/Core.h
    M llvm/include/llvm/IR/Value.def
    M llvm/lib/IR/Core.cpp
    M llvm/test/Bindings/llvm-c/echo.ll
    M llvm/tools/llvm-c-test/echo.cpp

  Log Message:
  -----------
  [C API] Support new ptrauth constant type (#93909)

This is a new constant type that was added to the C++ API in
0edc97f119f3ac3ff96b11183fe5c001a48a9a8d. This adds the ability to
create instances of this constant and get its values to the C API.


  Commit: e9b2a25e90fb7fe47936f65b434e4ebe24773349
      https://github.com/llvm/llvm-project/commit/e9b2a25e90fb7fe47936f65b434e4ebe24773349
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M compiler-rt/lib/nsan/nsan.cpp

  Log Message:
  -----------
  [nsan] Swap alignas and visibility order (NFC) (#98933)

Use `alignas(16) SANITIZER_INTERFACE_ATTRIBUTE` instead of
`SANITIZER_INTERFACE_ATTRIBUTE alignas(16)`, as the former is not
supported prior to clang 16. See https://clang.godbolt.org/z/Wj1193xWK.

This was broken by https://github.com/llvm/llvm-project/pull/96142 as
part of other style changes.


  Commit: e94e72a0c2293a02ea6c5335ac5fbc2d34de13f1
      https://github.com/llvm/llvm-project/commit/e94e72a0c2293a02ea6c5335ac5fbc2d34de13f1
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M clang/lib/AST/CMakeLists.txt
    M clang/lib/AST/Interp/Compiler.cpp
    M clang/lib/AST/Interp/Compiler.h
    A clang/lib/AST/Interp/DynamicAllocator.cpp
    A clang/lib/AST/Interp/DynamicAllocator.h
    M clang/lib/AST/Interp/EvalEmitter.cpp
    M clang/lib/AST/Interp/EvaluationResult.cpp
    M clang/lib/AST/Interp/EvaluationResult.h
    M clang/lib/AST/Interp/Interp.cpp
    M clang/lib/AST/Interp/Interp.h
    M clang/lib/AST/Interp/InterpBlock.h
    M clang/lib/AST/Interp/InterpState.cpp
    M clang/lib/AST/Interp/InterpState.h
    M clang/lib/AST/Interp/Opcodes.td
    M clang/lib/AST/Interp/Pointer.h
    A clang/test/AST/Interp/new-delete.cpp
    M clang/test/Rewriter/rewrite-modern-catch.m
    M clang/test/SemaCXX/delete.cpp
    M clang/test/SemaCXX/new-delete.cpp

  Log Message:
  -----------
  Reapply "[clang][Interp] Implement dynamic memory allocation handling (#70306)"

This reverts commit 48d703e7f56282ce5d690e45a129a4a7fd040ee6.


  Commit: 20c6b9fbba583d172e931dd24417784186136531
      https://github.com/llvm/llvm-project/commit/20c6b9fbba583d172e931dd24417784186136531
  Author: Abid Qadeer <haqadeer at amd.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M flang/lib/Optimizer/Transforms/AddDebugInfo.cpp
    M flang/test/Integration/debug-fixed-array-type-2.f90
    A flang/test/Transforms/debug-local-global-storage-1.fir

  Log Message:
  -----------
  [flang][debug] Fix issues with local variables. (#98661)

This PR fixes 2 similar issues.
1. As reported in #97476, flang generated executable has inconsistent
behavior regarding values of the local array variables.
2. Variable with save attribute would not show up in debugger.

The reason behind is same for both cases. If a local variable has
storage which extends beyond function lifetime, the way to represent it
in the debug info is through a global variable whose scope is limited to
the function. This is what is used for static local variable in C.
Previously local array worked in cases they were on stack. But will not
show up if they had a global storage.

To fix this, if we can get a corresponding `GlobalOp` for a variable
while processing `DeclareOp`, we treat it the variable as global with
scope set appropriately. A new FIR test is added. A previous Integration
test has been adjusted as to not expect local variables for local
arrays.

With this fix in place, all the issues described in #97476 go away. It
also fixes a lot of fails in GDB's fortran testsuite.

Fixes #97476.


  Commit: c5329c827ab345c4390f9a176573816e7f5c19e3
      https://github.com/llvm/llvm-project/commit/c5329c827ab345c4390f9a176573816e7f5c19e3
  Author: Sjoerd Meijer <smeijer at nvidia.com>
  Date:   2024-07-17 (Wed, 17 Jul 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/Target/AArch64/AArch64Features.td
    M llvm/lib/Target/AArch64/AArch64Processors.td
    M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    A llvm/test/Transforms/LoopVectorize/AArch64/prefer-fixed-if-equal-to-scalable.ll

  Log Message:
  -----------
  [LV][AArch64] Prefer Fixed over Scalable if cost-model is equal (Neoverse V2) (#95819)

    For the Neoverse V2 we would like to prefer fixed width over scalable
    vectorisation if the cost-model assigns an equal cost to both for certain
    loops. This improves 7 kernels from TSVC-2 and several production kernels by
    about 2x, and does not affect SPEC21017 INT and FP. This also adds a new TTI
    hook that can steer the loop vectorizater to preferring fixed width
    vectorization, which can be set per CPU. For now, this is only enabled for the
    Neoverse V2.

    There are 3 reasons why preferring NEON might be better in the case the
    cost-model is a tie and the SVE vector size is the same as NEON (128-bit):
    architectural reasons, micro-architecture reasons, and SVE codegen reasons. The
    latter will be improved over time, so the more important reasons are the former
    two. I.e., (micro) architecture reason is the use of LPD/STP instructions which
    are not available in SVE2 and it avoids predication.

    For what it is worth: this codegen strategy to generate more NEON is inline
    with GCC's codegen strategy, which is actually even more aggressive in
    generating NEON when no predication is required. We could be smarter about the
    decision making, but this seems to be a first good step in the right direction,
    and we can always revise this later (for example make the target hook more
    general).


  Commit: 9b9194af408003e7d484d621fb3ee61389bdd20e
      https://github.com/llvm/llvm-project/commit/9b9194af408003e7d484d621fb3ee61389bdd20e
  Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/utils/gn/secondary/clang/lib/AST/BUILD.gn

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


  Commit: 0b71d8020f1181c75c305d34943ed42bb1948177
      https://github.com/llvm/llvm-project/commit/0b71d8020f1181c75c305d34943ed42bb1948177
  Author: Jeremy Morse <jeremy.morse at sony.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp
    M llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h

  Log Message:
  -----------
  [InstrRef][NFC] Avoid un-necessary DenseMap queries (#99048)

This patch adjusts how some data is stored to avoid a number of
un-necessary DenseMap queries. There's no change to the compiler
behaviour, and it's measurably faster on the compile time tracker.

The BlockOrders vector in buildVLocValueMap collects the blocks over
which a variables value have to be determined: however the Cmp ordering
function makes two DenseMap queries to determine the RPO-order of blocks
being compared. And given that sorting is O(N log(N)) comparisons this
isn't fast. So instead, fetch the RPO-numbers of the block collection,
order those, and then map back to the blocks themselves.

The OrderToBB collection mapped an RPO-number to an MBB: it's completely
un-necessary to have DenseMap here, we can just use the RPO number as an
array index. Switch it to a SmallVector and deal with a few consequences
when iterating.

(And for good measure I've jammed in a couple of reserve calls).


  Commit: 8d28a4102b3668c75d061235c2890546757f4257
      https://github.com/llvm/llvm-project/commit/8d28a4102b3668c75d061235c2890546757f4257
  Author: Carl Ritson <carl.ritson at amd.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/SIWholeQuadMode.cpp

  Log Message:
  -----------
  [AMDGPU] Remove SIWholeQuadMode pass early exit (#98450)

Merge the code bypass elements from the early exit into the main pass
execution flow.


  Commit: d216615518875f828b9055ac79dbdb32e539367a
      https://github.com/llvm/llvm-project/commit/d216615518875f828b9055ac79dbdb32e539367a
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/test/Transforms/LoopVectorize/X86/interleave-cost.ll

  Log Message:
  -----------
  [LV] Process dead interleave pointer ops in reverse order.

Process dead interleave pointer ops in reverse order. This also catches
cases where the same base pointer is used by multiple different
interleave groups.

This fixes another case where the legacy cost model inaccuarately
estimates cost, surfaced by b841e2eca3b5c8.


  Commit: 762c607d8ecb2bf678375f79ac23e143be0b5f3f
      https://github.com/llvm/llvm-project/commit/762c607d8ecb2bf678375f79ac23e143be0b5f3f
  Author: Tianyi Guan <tguan at nvidia.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/test/CodeGen/AArch64/GlobalISel/load-addressing-modes.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/store-addressing-modes.mir
    M llvm/test/CodeGen/AArch64/aarch64-fold-lslfast.ll

  Log Message:
  -----------
  [AArch64][GISel] Add test cases for folding shifts into load/store addressing modes (NFC)


  Commit: 290184880ae22541738e280397da33fe515e4c86
      https://github.com/llvm/llvm-project/commit/290184880ae22541738e280397da33fe515e4c86
  Author: Krasimir Georgiev <krasimir at google.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64MIPeepholeOpt.cpp
    R llvm/lib/Target/AArch64/peephole-sxtw.mir
    M llvm/test/CodeGen/AArch64/aarch64-mull-masks.ll

  Log Message:
  -----------
  Revert "[AArch64] Remove superfluous sxtw in peephole opt (#96293)"

This reverts commit 7f2a5dfe35f8bbaca2819644c7aa844f938befd6.

It appears that after this, llc segfaults on the following code:
```
target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32"
target triple = "aarch64--linux-eabi"

define i32 @f(i32 %0) {
entry:
  %1 = sext i32 %0 to i64
  br label %A

A:
  %2 = trunc i64 %1 to i32
  %a69.us = sub i32 0, %2
  %a69.us.fr = freeze i32 %a69.us
  %3 = zext i32 %a69.us.fr to i64
  br label %B

B:
  %t = icmp eq i64 0, %3
  br i1 %t, label %A, label %B
}
```

assert.h assertion failed at .../llvm/lib/CodeGen/LiveVariables.cpp:159 in void llvm::LiveVariables::HandleVirtRegUse(Register, MachineBasicBlock *, MachineInstr &): MRI->getVRegDef(Reg) && "Register use before def!"


  Commit: 8156be684da4c37b6191dab26d2eb5c2777be17d
      https://github.com/llvm/llvm-project/commit/8156be684da4c37b6191dab26d2eb5c2777be17d
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

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

  Log Message:
  -----------
  [LV][NFC]Introduce isScalableVectorizationAllowed() to refactor getMaxLegalScalableVF().

Adds isScalableVectorizationAllowed() and the corresponding data member
to query if the scalable vectorization is supported rather than
performing the analysis each time the scalable vector factor is
requested.

Part of https://github.com/llvm/llvm-project/pull/91403

Reviewers: ayalz, fhahn

Reviewed By: fhahn, ayalz

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


  Commit: 440fffad7e7231fab766c6e00e47a39ad5a9b95e
      https://github.com/llvm/llvm-project/commit/440fffad7e7231fab766c6e00e47a39ad5a9b95e
  Author: Younan Zhang <zyn7109 at gmail.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/Sema/SemaConcept.cpp
    M clang/test/SemaTemplate/instantiate-requires-expr.cpp

  Log Message:
  -----------
  [Clang][Concepts] Avoid substituting into constraints for invalid TemplateDecls (#75697)

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

Substituting into constraints for invalid TemplateDecls might still
yield dependent expressions and end up crashing later in evaluation.


  Commit: 6425f2d66740b84fc3027b649cd4baf660c384e8
      https://github.com/llvm/llvm-project/commit/6425f2d66740b84fc3027b649cd4baf660c384e8
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/X86/int-bitcast-minbitwidth.ll
    M llvm/test/Transforms/SLPVectorizer/X86/minbitwidth-transformed-operand.ll
    M llvm/test/Transforms/SLPVectorizer/X86/resched.ll
    M llvm/test/Transforms/SLPVectorizer/X86/shuffle-multivector.ll
    M llvm/test/Transforms/SLPVectorizer/orig-btiwidth-les-projected.ll

  Log Message:
  -----------
  [SLP]Improve minbitwidth analysis for trun'ed gather nodes.

If the gather node is trunc'ed, better to trunc scalars and then gather
them rather than gather and then trunc. Trunc for scalars is free in
most cases.

Reviewers: RKSimon

Reviewed By: RKSimon

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


  Commit: d2bfc2b52bfc1c17248b897ae8618865d4d9a3af
      https://github.com/llvm/llvm-project/commit/d2bfc2b52bfc1c17248b897ae8618865d4d9a3af
  Author: Lin Jian <me at linj.tech>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/utils/emacs/llvm-mir-mode.el

  Log Message:
  -----------
  [emacs] Fix autoloading for llvm-mir-mode (#98984)

Without this patch, the autoloading of the major mode `llvm-mir-mode` is
not generated, which breaks its autoloading functionality.

To test this patch, use the following command to generate an autoload
file:

```console
cd llvm/utils/emacs
emacs --quick --batch --load=package --eval='(package-generate-autoloads "llvm-mir-mode" ".")'
```

Diff of generated autoload files is as follows:

```diff
> (autoload 'llvm-mir-mode "llvm-mir-mode" "\
> A major mode for editing LLVM MIR files.
> 
> (fn)" t)
```

CC @bogner for review


  Commit: 343ed3fd5a5e183f0edf87a89955af772aaadcfb
      https://github.com/llvm/llvm-project/commit/343ed3fd5a5e183f0edf87a89955af772aaadcfb
  Author: Adrian Kuegel <akuegel at google.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

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

  Log Message:
  -----------
  [lldb][Bazel]: Adapt BUILD.bazel file for a751f653b40f2021f091a2f1ebcc2d91bc4cc89d


  Commit: 8d97cbcf27becd88e053ef888605f55b68272e60
      https://github.com/llvm/llvm-project/commit/8d97cbcf27becd88e053ef888605f55b68272e60
  Author: Adrian Kuegel <akuegel at google.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

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

  Log Message:
  -----------
  Revert "[lldb][Bazel]: Adapt BUILD.bazel file for a751f653b40f2021f091a2f1ebcc2d91bc4cc89d"

This reverts commit 343ed3fd5a5e183f0edf87a89955af772aaadcfb.


  Commit: b5b9832b42f436986c7290bc1e912e2f276b4e6b
      https://github.com/llvm/llvm-project/commit/b5b9832b42f436986c7290bc1e912e2f276b4e6b
  Author: Adrian Kuegel <akuegel at google.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

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

  Log Message:
  -----------
  [lldb][Bazel]: Second attempt to adapt for a751f653b40f2021f091a2f1ebcc2d91bc4cc89d


  Commit: 64f67a448740480b0ff5d8c89ee2b99878c5559c
      https://github.com/llvm/llvm-project/commit/64f67a448740480b0ff5d8c89ee2b99878c5559c
  Author: Sylvestre Ledru <sylvestre at debian.org>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/lib/Target/Xtensa/XtensaISelLowering.cpp

  Log Message:
  -----------
  adjust the Xtensa backend after change f270a4dd6667759d7305797a077ae09648318ac7

Similar fix as in 3941f652317d95cac203e64791bfa730de7bbd1e


  Commit: bc8a8f5415c522f99600171e012d511c010d7309
      https://github.com/llvm/llvm-project/commit/bc8a8f5415c522f99600171e012d511c010d7309
  Author: MagentaTreehouse <99200384+MagentaTreehouse at users.noreply.github.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M clang/lib/Sema/SemaDeclCXX.cpp

  Log Message:
  -----------
  [clang][Sema] Improve `Sema::CheckCXXDefaultArguments` (#97338)

In the second loop in `Sema::CheckCXXDefaultArguments`, we don't need to
re-examine the first parameter with a default argument. Dropped the
first iteration of that loop.

In addition, use the preferred early `continue` for the if-statement in
the loop.


  Commit: fa0e52995929ab67dfb468d71fe793be5e1c7f03
      https://github.com/llvm/llvm-project/commit/fa0e52995929ab67dfb468d71fe793be5e1c7f03
  Author: Daniel Chen <cdchen at ca.ibm.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M flang/runtime/time-intrinsic.cpp

  Log Message:
  -----------
  [Flang] Exclude the reference to TIME_UTC for AIX. (#99069)

This PR supersede PR #98915


  Commit: 1813ffd6b2eb04ee2c296a4399a18748740a439d
      https://github.com/llvm/llvm-project/commit/1813ffd6b2eb04ee2c296a4399a18748740a439d
  Author: Han-Kuan Chen <hankuan.chen at sifive.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    A llvm/test/Transforms/SLPVectorizer/revec.ll

  Log Message:
  -----------
  [SLP][REVEC] Make SLP support revectorization (-slp-revec) and add simple test. (#98269)

This PR will make SLP support revectorization. Add an option -slp-revec
to control the functionality.

reference:

https://discourse.llvm.org/t/rfc-make-slp-vectorizer-revectorize-vector-instructions/79436


  Commit: 329e7c80ac2dbc16c267390da5f1baaf1cd438b1
      https://github.com/llvm/llvm-project/commit/329e7c80ac2dbc16c267390da5f1baaf1cd438b1
  Author: Mital Ashok <mital at mitalashok.co.uk>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/lib/Frontend/InitPreprocessor.cpp
    M clang/lib/Headers/stdatomic.h
    M clang/lib/Sema/SemaExpr.cpp
    A clang/test/C/C23/n2653.c
    M clang/www/c_status.html

  Log Message:
  -----------
  [Clang] [C23] Implement N2653: u8 strings are char8_t[] (#97208)

https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2653.htm

Closes #97202

---------

Co-authored-by: cor3ntin <corentinjabot at gmail.com>


  Commit: 177ce1900f0de05337f744edd3f4e454f7a93b06
      https://github.com/llvm/llvm-project/commit/177ce1900f0de05337f744edd3f4e454f7a93b06
  Author: Lawrence Benson <github at lawben.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/docs/GlobalISel/GenericOpcode.rst
    M llvm/docs/LangRef.rst
    M llvm/docs/ReleaseNotes.rst
    M llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
    M llvm/include/llvm/CodeGen/ISDOpcodes.h
    M llvm/include/llvm/CodeGen/TargetLowering.h
    M llvm/include/llvm/IR/Intrinsics.td
    M llvm/include/llvm/Support/TargetOpcodes.def
    M llvm/include/llvm/Target/GenericOpcodes.td
    M llvm/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
    M llvm/include/llvm/Target/TargetSelectionDAG.td
    M llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
    M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    M llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
    M llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
    M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
    M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.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
    M llvm/lib/CodeGen/TargetLoweringBase.cpp
    M llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
    A llvm/test/CodeGen/AArch64/GlobalISel/legalize-vector-compress.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir
    A llvm/test/CodeGen/AArch64/vector-compress.ll

  Log Message:
  -----------
  [LLVM] Add `llvm.experimental.vector.compress` intrinsic (#92289)

This PR adds a new vector intrinsic `@llvm.experimental.vector.compress`
to "compress" data within a vector based on a selection mask, i.e., it
moves all selected values (i.e., where `mask[i] == 1`) to consecutive
lanes in the result vector. A `passthru` vector can be provided, from
which remaining lanes are filled.

The main reason for this is that the existing
`@llvm.masked.compressstore` has very strong constraints in that it can
only write values that were selected, resulting in guard branches for
all targets except AVX-512 (and even there the AMD implementation is
_very_ slow). More instruction sets support "compress" logic, but only
within registers. So to store the values, an additional store is needed.
But this combination is likely significantly faster on many target as it
avoids branches.

In follow up PRs, my plan is to add target-specific lowerings for x86,
SVE, and possibly RISCV. I also want to combine this with a store
instruction, as this is probably a common case and we can avoid some
memory writes in that case.

See [discussion in
forum](https://discourse.llvm.org/t/new-intrinsic-for-masked-vector-compress-without-store/78663)
for initial discussion on the design.


  Commit: b05ccaf451bca11fda5437003d54d7975cd8e575
      https://github.com/llvm/llvm-project/commit/b05ccaf451bca11fda5437003d54d7975cd8e575
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/X86/int-bitcast-minbitwidth.ll
    M llvm/test/Transforms/SLPVectorizer/X86/minbitwidth-transformed-operand.ll
    M llvm/test/Transforms/SLPVectorizer/X86/resched.ll
    M llvm/test/Transforms/SLPVectorizer/X86/shuffle-multivector.ll
    M llvm/test/Transforms/SLPVectorizer/orig-btiwidth-les-projected.ll

  Log Message:
  -----------
  Revert "[SLP]Improve minbitwidth analysis for trun'ed gather nodes."

This reverts commit 6425f2d66740b84fc3027b649cd4baf660c384e8 to fix the
buildbost issues reported in https://lab.llvm.org/buildbot/#/builders/95/builds/1404.


  Commit: e093109e4a1551de13a1219275d62e9c7ee3146f
      https://github.com/llvm/llvm-project/commit/e093109e4a1551de13a1219275d62e9c7ee3146f
  Author: Jeremy Morse <jeremy.morse at sony.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp

  Log Message:
  -----------
  [InstrRef][NFC] Avoid another DenseMap, use a sorted vector (#99051)

When resolving value-numbers to specific machine locations in the final
stages of LiveDebugValues, we've been producing a DenseMap containing
all the value-numbers we're interested in. However we never modify the
map keys as they're all pre-known. Thus, this is a suitable collection
to switch to a sorted vector that gets searched, rather than a DenseMap
that gets probed. The overall operation of LiveDebugValues isn't
affected at all.


  Commit: 8917d52938b907b00fced24506708b381f472890
      https://github.com/llvm/llvm-project/commit/8917d52938b907b00fced24506708b381f472890
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

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

  Log Message:
  -----------
  [X86] createSetFPEnvNodes - pass SDLoc by reference instead of value.


  Commit: 396a5ba51e9e47f818a749ec3f2368e4fea6a67f
      https://github.com/llvm/llvm-project/commit/396a5ba51e9e47f818a749ec3f2368e4fea6a67f
  Author: Mital Ashok <mital at mitalashok.co.uk>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M clang/include/clang/Basic/Builtins.def
    M clang/include/clang/Basic/Builtins.h
    M clang/include/clang/Basic/BuiltinsBase.td
    M clang/lib/Basic/Builtins.cpp
    M clang/lib/Sema/SemaDecl.cpp
    M clang/lib/Sema/SemaExpr.cpp

  Log Message:
  -----------
  [Clang] Add attribute for consteval builtin functions (#91894)

Builtins with the new `Consteval` attribute will also be marked
`Constexpr` and will only be available in C++20 mode where `consteval`
makes sense.


  Commit: 6451806ef73bb033be3f6e1599f3bcb224943206
      https://github.com/llvm/llvm-project/commit/6451806ef73bb033be3f6e1599f3bcb224943206
  Author: Mital Ashok <mital at mitalashok.co.uk>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/AST/ASTContext.cpp
    M clang/lib/Sema/SemaExprCXX.cpp
    M clang/test/SemaCXX/type-traits.cpp

  Log Message:
  -----------
  [Clang] Require base element type of `__has_unique_object_representations` to be complete (#95432)

Fixes #95311

Previous behaviour was that `false` was silently returned, templated
classes were not instantiated and incomplete classes did not issue an
error.

---------

Co-authored-by: cor3ntin <corentinjabot at gmail.com>


  Commit: 544c390aac41983342227db1c47be9308188712f
      https://github.com/llvm/llvm-project/commit/544c390aac41983342227db1c47be9308188712f
  Author: Jie Fu <jiefu at tencent.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

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

  Log Message:
  -----------
  [CodeGen] Fix -Wunused-variable in SelectionDAG.cpp (NFC)

/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:7560:9:
error: unused variable 'VecVT' [-Werror,-Wunused-variable]
    EVT VecVT = N1.getValueType();
        ^
1 error generated.


  Commit: 75b3ddf23b7dfb2cf4cb3c99b4b7ee80e510589d
      https://github.com/llvm/llvm-project/commit/75b3ddf23b7dfb2cf4cb3c99b4b7ee80e510589d
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

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

  Log Message:
  -----------
  [VPlan] Use State.VF in vectorizeInterleaveGroup (NFCI).

Update vectorizeInterleaveGroup to use State.VF in preparation to moving
the code directly to the recipe.


  Commit: 3fae5551de72756c3bb9fb2e5a29c95f02cbbd6b
      https://github.com/llvm/llvm-project/commit/3fae5551de72756c3bb9fb2e5a29c95f02cbbd6b
  Author: Jan Leyonberg <jan_sjodin at yahoo.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    A mlir/include/mlir/Conversion/MathToROCDL/MathToROCDL.h
    M mlir/include/mlir/Conversion/Passes.h
    M mlir/include/mlir/Conversion/Passes.td
    M mlir/lib/Conversion/CMakeLists.txt
    M mlir/lib/Conversion/GPUToROCDL/CMakeLists.txt
    M mlir/lib/Conversion/GPUToROCDL/LowerGpuOpsToROCDLOps.cpp
    A mlir/lib/Conversion/MathToROCDL/CMakeLists.txt
    A mlir/lib/Conversion/MathToROCDL/MathToROCDL.cpp
    A mlir/test/Conversion/MathToROCDL/math-to-rocdl.mlir

  Log Message:
  -----------
  [MLIR][ROCDL] Refactor conversion of math operations to ROCDL calls to a separate pass (#98653)

This patch refactors the conversion of math operations to ROCDL library
calls. This pass will also be used in flang to lower Fortran
intrinsics/math functions for OpenMP target offloading codgen.


  Commit: 8687f7cd662384e3bd009a0f43eabbbe87f4387a
      https://github.com/llvm/llvm-project/commit/8687f7cd662384e3bd009a0f43eabbbe87f4387a
  Author: Alex Bradbury <asb at igalia.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/MCTargetDesc/RISCVMatInt.cpp
    M llvm/lib/Target/RISCV/MCTargetDesc/RISCVMatInt.h
    M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
    M llvm/test/Transforms/ConstantHoisting/RISCV/immediates.ll

  Log Message:
  -----------
  [RISCV] Support constant hoisting of immediate store values (#96073)

Previously getIntImmInstCost only calculated the cost of materialising
the argument of a store if it was the address. This means
ConstantHoisting's transformation wouldn't kick in for cases like
storing two values that require multiple instructions to materialise but
where one can be cheaply generated from the other (e.g. by an addition).

Two key changes were needed to avoid regressions when enabling this:
* Allowing constant materialisation cost to be calculated assuming
zeroes are free (as might happen if you had a 2*XLEN constant and one
half is zero).
* Avoiding constant hoisting if we have a misaligned store that's going
to be a legalised to a sequence of narrower stores. I'm seeing cases
where hoisting the constant ends up with worse codegen in that case.

Out of caution and so as not to unexpectedly degrade other existing hoisting logic, FreeZeroes is used only for the new cost calculations for the load instruction. It would likely make sense to revisit this later.


  Commit: d3d2f9a4208eedbd2f372c34725ab61c3f4d3aed
      https://github.com/llvm/llvm-project/commit/d3d2f9a4208eedbd2f372c34725ab61c3f4d3aed
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/X86/int-bitcast-minbitwidth.ll
    M llvm/test/Transforms/SLPVectorizer/X86/minbitwidth-transformed-operand.ll
    M llvm/test/Transforms/SLPVectorizer/X86/resched.ll
    M llvm/test/Transforms/SLPVectorizer/X86/shuffle-multivector.ll

  Log Message:
  -----------
  [SLP]Improve minbitwidth analysis for trun'ed gather nodes.

If the gather node is trunc'ed, better to trunc scalars and then gather
them rather than gather and then trunc. Trunc for scalars is free in
most cases.

Reviewers: RKSimon

Reviewed By: RKSimon

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


  Commit: 05b067b5f952a427f80e1c39a5c9025fdb2d64b2
      https://github.com/llvm/llvm-project/commit/05b067b5f952a427f80e1c39a5c9025fdb2d64b2
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/X86/int-bitcast-minbitwidth.ll
    M llvm/test/Transforms/SLPVectorizer/X86/minbitwidth-transformed-operand.ll
    M llvm/test/Transforms/SLPVectorizer/X86/resched.ll
    M llvm/test/Transforms/SLPVectorizer/X86/shuffle-multivector.ll

  Log Message:
  -----------
  Revert "[SLP]Improve minbitwidth analysis for trun'ed gather nodes."

This reverts commit d3d2f9a4208eedbd2f372c34725ab61c3f4d3aed to fix
buildbot https://lab.llvm.org/buildbot/#/builders/92/builds/1880.


  Commit: c5c1bd164fc81a992dfdb5b7c7c672dab0e3f165
      https://github.com/llvm/llvm-project/commit/c5c1bd164fc81a992dfdb5b7c7c672dab0e3f165
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/X86/int-bitcast-minbitwidth.ll
    M llvm/test/Transforms/SLPVectorizer/X86/minbitwidth-transformed-operand.ll
    M llvm/test/Transforms/SLPVectorizer/X86/resched.ll
    M llvm/test/Transforms/SLPVectorizer/X86/shuffle-multivector.ll

  Log Message:
  -----------
  [SLP]Improve minbitwidth analysis for trun'ed gather nodes.

If the gather node is trunc'ed, better to trunc scalars and then gather
them rather than gather and then trunc. Trunc for scalars is free in
most cases.

Reviewers: RKSimon

Reviewed By: RKSimon

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


  Commit: 554febd3aad8d7cea7b8f8f6124d691031fb618c
      https://github.com/llvm/llvm-project/commit/554febd3aad8d7cea7b8f8f6124d691031fb618c
  Author: Mital Ashok <mital at mitalashok.co.uk>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M clang/lib/AST/ExprConstant.cpp
    M clang/lib/Sema/SemaInit.cpp
    M clang/test/SemaCXX/paren-list-agg-init.cpp

  Log Message:
  -----------
  [Clang] Fix some assertions not looking through type sugar (#92299)

Fixes #92284

Co-authored-by: cor3ntin <corentinjabot at gmail.com>


  Commit: ec9d62fe84fe314370a256306c083a9e7079b80b
      https://github.com/llvm/llvm-project/commit/ec9d62fe84fe314370a256306c083a9e7079b80b
  Author: Leandro Lupori <leandro.lupori at linaro.org>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M lldb/test/Shell/Recognizer/verbose_trap.test

  Log Message:
  -----------
  [lldb] Disable verbose_trap.test on Windows (#99323)

verbose_trap.test, added in #80368, fails on some Windows bots.
See https://lab.llvm.org/buildbot/#/builders/141/builds/808.


  Commit: 77b2c681677db02552475426f0f7cf2c009ff98d
      https://github.com/llvm/llvm-project/commit/77b2c681677db02552475426f0f7cf2c009ff98d
  Author: Nathan James <n.james93 at hotmail.co.uk>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M clang-tools-extra/clang-tidy/modernize/UseRangesCheck.cpp
    M clang-tools-extra/docs/clang-tidy/checks/modernize/use-ranges.rst
    M clang-tools-extra/test/clang-tidy/checkers/modernize/Inputs/use-ranges/fake_std.h
    M clang-tools-extra/test/clang-tidy/checkers/modernize/use-ranges.cpp

  Log Message:
  -----------
  [clang-tidy] Add support for std::rotate(_copy) and inplace_merge to modernize-use-ranges (#99057)

These algorithms take 3 iterators for the range and we are only
interested in the first and last iterator argument. The ranges versions
of these take a range and an iterator(defined to be inside the range) so
the transformation is pretty similar `algo(I.begin, other, I.end,...)`
-> `ranges::algo(I, other,...)`


  Commit: c034c44362a5dda93a8049d452625c59b76f7169
      https://github.com/llvm/llvm-project/commit/c034c44362a5dda93a8049d452625c59b76f7169
  Author: Tim Gymnich <tgymnich at icloud.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
    A llvm/test/Transforms/InstCombine/select-of-symmetric-selects.ll

  Log Message:
  -----------
  [InstCombine] Fold select of symmetric selects (#99245)

fixes #98800

Fold patterns like:
   select c2 (select c1 a b) (select c1 b a)
into:
   select (xor c1 c2) b a

Alive2 proofs:
https://alive2.llvm.org/ce/z/4QAm4K
https://alive2.llvm.org/ce/z/vTVRnC


  Commit: a56e009ef852926c8e77eb8e50739d2b5a389212
      https://github.com/llvm/llvm-project/commit/a56e009ef852926c8e77eb8e50739d2b5a389212
  Author: Mital Ashok <mital at mitalashok.co.uk>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/AST/ASTContext.h
    M clang/include/clang/AST/Type.h
    M clang/lib/AST/ASTContext.cpp
    M clang/lib/AST/Type.cpp
    M clang/test/Sema/c2x-typeof.c

  Log Message:
  -----------
  [Clang] [C23] Fix typeof_unqual for qualified array types (#92767)

Properly remove qualifiers for both the element type and the array type

Fixes #92667

---------

Co-authored-by: cor3ntin <corentinjabot at gmail.com>


  Commit: 5d42d69d936bc3f29e849aac33d331b198143145
      https://github.com/llvm/llvm-project/commit/5d42d69d936bc3f29e849aac33d331b198143145
  Author: Mikhail R. Gadelha <mikhail at igalia.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M libc/src/stdlib/rand.cpp

  Log Message:
  -----------
  [libc] Change rand implementation so all tests pass in both 32- and 64-bit systems (#98692)

This patch makes rand select different algorithms depending on the arch.
This is needed to avoid a test failure in 32-bit systems where the LSB
of rand was not uniform enough when the 64-bit constants are used in
32-bit systems.


  Commit: 60b6f43ea188f3427985f6328a638375063a9f44
      https://github.com/llvm/llvm-project/commit/60b6f43ea188f3427985f6328a638375063a9f44
  Author: Hristo Hristov <hghristov.rmm at gmail.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M libcxx/docs/Status/Cxx2cIssues.csv
    M libcxx/include/__ranges/iota_view.h
    A libcxx/test/std/ranges/range.factories/range.iota.view/empty.pass.cpp

  Log Message:
  -----------
  [libc++][ranges] LWG4001: `iota_view` should provide `empty` (#79687)

Implements: https://wg21.link/LWG4001
- https://eel.is/c++draft/range.iota.view

---------

Co-authored-by: Zingam <zingam at outlook.com>
Co-authored-by: Will Hawkins <whh8b at obs.cr>


  Commit: 351a4b27da7dfe2ec6ae3400bd681eae1fb5180f
      https://github.com/llvm/llvm-project/commit/351a4b27da7dfe2ec6ae3400bd681eae1fb5180f
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPUResourceUsageAnalysis.cpp

  Log Message:
  -----------
  [AMDGPU] Simplify alias stripping to use utility function


  Commit: e9fdc689dbb141a318bb7be40001cef03ca67301
      https://github.com/llvm/llvm-project/commit/e9fdc689dbb141a318bb7be40001cef03ca67301
  Author: smanna12 <soumi.manna at intel.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

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

  Log Message:
  -----------
  [Clang][NFC] Remove unnecessary copy (#97902)

Reported by Static Analyzer Tool:

In
clang::ASTNodeImporter::VisitCountAttributedType(clang::CountAttributedType
const *): Using the auto keyword without an & causes the copy of an
object of type TypeCoupledDeclRefInfo


  Commit: 73799b46072c2241ae32c87f478a7e2a30c0e1a3
      https://github.com/llvm/llvm-project/commit/73799b46072c2241ae32c87f478a7e2a30c0e1a3
  Author: Mikhail R. Gadelha <mikhail at igalia.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

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

  Log Message:
  -----------
  [libc] Added missing operator delete generated by gcc/clang (#67457)

This patch adds two operators delete that are being generated by clang 15 on rv32 (operator delete(void *mem, std::align_val_t)) and by gcc 13 on intel 64 (operator delete(void *mem, unsigned long)).


  Commit: daab6fc5357b3a7f8b6780134d5cb6130f92329b
      https://github.com/llvm/llvm-project/commit/daab6fc5357b3a7f8b6780134d5cb6130f92329b
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

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

  Log Message:
  -----------
  [Transforms] DXILResource.cpp - fix MSVC "not all control paths return a value" warning. NFC.


  Commit: 3ad7108c3cf843cac6301db3f73ccea9661bc4d3
      https://github.com/llvm/llvm-project/commit/3ad7108c3cf843cac6301db3f73ccea9661bc4d3
  Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M flang/lib/Lower/Bridge.cpp
    M flang/test/Lower/CUDA/cuda-data-transfer.cuf

  Log Message:
  -----------
  [flang][cuda] Avoid temporary when RHS is a logical constant (#99078)

Enhance the detection of constant on the RHS for logical cases so we
don't create a temporary.


  Commit: 666d224248707f373577b5b049b5b0229100006c
      https://github.com/llvm/llvm-project/commit/666d224248707f373577b5b049b5b0229100006c
  Author: Mike Crowe <mac at mcrowe.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M clang-tools-extra/clang-tidy/modernize/UseStdFormatCheck.cpp
    M clang-tools-extra/clang-tidy/modernize/UseStdPrintCheck.cpp
    M clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-format-custom.cpp
    M clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-format-fmt.cpp
    M clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-print-custom.cpp

  Log Message:
  -----------
  [clang-tidy] Fix modernize-use-std-print/format for fmt (#99021)

When fixing #92896 in 0e62d5cf55479981da5e05e406bbca4afb3cdc4f (#94104)
I failed to spot that I'd broken converting from fmt::printf,
fmt::fprintf and fmt::sprintf in these checks since the format parameter
of those functions is not a simple character pointer.

The first part of the previous fix to avoid the assert and instead
produce an error message was sufficient. It was only the second part
that required the format parameter of the called function to be a simple
character pointer that was problematic. Let's remove that second part
and add the now-expected error messages to the lit tests along with
fixing the prototype for the fmt functions to more accurately reflect
the ones used by the fmt library so they are actually useful.

Fixes #92896


  Commit: c63125d4533a22a200c3b5b1efb8ac3ce4b1cb69
      https://github.com/llvm/llvm-project/commit/c63125d4533a22a200c3b5b1efb8ac3ce4b1cb69
  Author: Giuseppe Rossini <giuseppe.rossini at amd.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M mlir/lib/Dialect/Bufferization/Transforms/BufferDeallocationSimplification.cpp
    M mlir/lib/Transforms/Utils/RegionUtils.cpp
    M mlir/test/Dialect/Bufferization/Transforms/OwnershipBasedBufferDeallocation/dealloc-branchop-interface.mlir
    M mlir/test/Dialect/Linalg/detensorize_entry_block.mlir
    M mlir/test/Dialect/Linalg/detensorize_if.mlir
    M mlir/test/Dialect/Linalg/detensorize_while.mlir
    M mlir/test/Dialect/Linalg/detensorize_while_impure_cf.mlir
    M mlir/test/Dialect/Linalg/detensorize_while_pure_cf.mlir
    M mlir/test/Transforms/canonicalize-block-merge.mlir
    M mlir/test/Transforms/canonicalize-dce.mlir
    M mlir/test/Transforms/make-isolated-from-above.mlir
    A mlir/test/Transforms/test-canonicalize-merge-large-blocks.mlir

  Log Message:
  -----------
  [mlir] Fix block merging (#97697)

With this PR I am trying to address:
https://github.com/llvm/llvm-project/issues/63230.

What changed:
- While merging identical blocks, don't add a block argument if it is
"identical" to another block argument. I.e., if the two block arguments
refer to the same `Value`. The operations operands in the block will
point to the argument we already inserted. This needs to happen to all
the arguments we pass to the different successors of the parent block
- After merged the blocks, get rid of "unnecessary" arguments. I.e., if
all the predecessors pass the same block argument, there is no need to
pass it as an argument.
- This last simplification clashed with
`BufferDeallocationSimplification`. The reason, I think, is that the two
simplifications are clashing. I.e., `BufferDeallocationSimplification`
contains an analysis based on the block structure. If we simplify the
block structure (by merging and/or dropping block arguments) the
analysis is invalid . The solution I found is to do a more prudent
simplification when running that pass.

**Note**: this a rework of #96871 . I ran all the integration tests
(`-DMLIR_INCLUDE_INTEGRATION_TESTS=ON`) and they passed.


  Commit: 850a2e68749266ae0944a27fedf81c6f68d5a2c4
      https://github.com/llvm/llvm-project/commit/850a2e68749266ae0944a27fedf81c6f68d5a2c4
  Author: Tom Eccles <tom.eccles at arm.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M flang/lib/Optimizer/Builder/IntrinsicCall.cpp

  Log Message:
  -----------
  [flang] Fix compiler warning (#99306)


  Commit: 136737d94777140952c4948aa4c8fe441aec48e3
      https://github.com/llvm/llvm-project/commit/136737d94777140952c4948aa4c8fe441aec48e3
  Author: Mark de Wever <koraq at xs4all.nl>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M libcxx/docs/ReleaseNotes/19.rst
    M libcxx/include/__utility/rel_ops.h
    A libcxx/test/libcxx/depr/depr.rel_ops/rel_ops.depr_in_cxx20.verify.cpp
    M libcxx/test/std/containers/iterator.rel_ops.compile.pass.cpp
    M libcxx/test/std/utilities/utility/operators/rel_ops.pass.cpp

  Log Message:
  -----------
  [libc++] Deprecates rel_ops. (#91642)

These operators were deprecated in
  P0768R1 Library Support for the Spaceship (Comparison) Operator

This was discovered while investigating the paper's implementation
status.


  Commit: 7fc9fb9f3f671ee4b1ccfefaf03ed18cc0c3e3c3
      https://github.com/llvm/llvm-project/commit/7fc9fb9f3f671ee4b1ccfefaf03ed18cc0c3e3c3
  Author: lntue <35648136+lntue at users.noreply.github.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M libc/config/darwin/arm/entrypoints.txt
    M libc/config/gpu/entrypoints.txt
    M libc/config/linux/aarch64/entrypoints.txt
    M libc/config/linux/arm/entrypoints.txt
    M libc/config/linux/riscv/entrypoints.txt
    M libc/config/linux/x86_64/entrypoints.txt
    M libc/config/windows/entrypoints.txt
    M libc/docs/math/index.rst
    M libc/spec/stdc.td
    M libc/src/math/CMakeLists.txt
    A libc/src/math/cbrt.h
    M libc/src/math/generic/CMakeLists.txt
    A libc/src/math/generic/cbrt.cpp
    M libc/test/src/math/CMakeLists.txt
    A libc/test/src/math/cbrt_test.cpp
    M libc/test/src/math/smoke/CMakeLists.txt
    A libc/test/src/math/smoke/cbrt_test.cpp

  Log Message:
  -----------
  [libc][math] Implement double precision cbrt correctly rounded to all rounding modes. (#99262)

Division-less Newton iterations algorithm for cube roots.

1. **Range reduction**

For `x = (-1)^s * 2^e * (1.m)`, we get 2 reduced arguments `x_r` and `a`
as:
```
  x_r = 1.m
  a   = (-1)^s * 2^(e % 3) * (1.m)
```
Then `cbrt(x) = x^(1/3)` can be computed as:
```
  x^(1/3) = 2^(e / 3) * a^(1/3).
```

In order to avoid division, we compute `a^(-2/3)` using Newton method
and then
multiply the results by a:
```
  a^(1/3) = a * a^(-2/3).
```

2. **First approximation to a^(-2/3)**

First, we use a degree-7 minimax polynomial generated by Sollya to
approximate `x_r^(-2/3)` for `1 <= x_r < 2`.
```
  p = P(x_r) ~ x_r^(-2/3),
```
with relative errors bounded by:
```
  | p / x_r^(-2/3) - 1 | < 1.16 * 2^-21.
```

Then we multiply with `2^(e % 3)` from a small lookup table to get:
```
  x_0 = 2^(-2*(e % 3)/3) * p
      ~ 2^(-2*(e % 3)/3) * x_r^(-2/3)
      = a^(-2/3)
```
with relative errors:
```
  | x_0 / a^(-2/3) - 1 | < 1.16 * 2^-21.
```
This step is done in double precision.

3. **First Newton iteration**

We follow the method described in:
Sibidanov, A. and Zimmermann, P., "Correctly rounded cubic root
evaluation
in double precision", https://core-math.gitlabpages.inria.fr/cbrt64.pdf
to derive multiplicative Newton iterations as below:
Let `x_n` be the nth approximation to `a^(-2/3)`. Define the n^th error
as:
```
  h_n = x_n^3 * a^2 - 1
```
Then:
```
  a^(-2/3) = x_n / (1 + h_n)^(1/3)
           = x_n * (1 - (1/3) * h_n + (2/9) * h_n^2 - (14/81) * h_n^3 + ...)
```
using the Taylor series expansion of `(1 + h_n)^(-1/3)`.

Apply to `x_0` above:
```
  h_0 = x_0^3 * a^2 - 1
      = a^2 * (x_0 - a^(-2/3)) * (x_0^2 + x_0 * a^(-2/3) + a^(-4/3)),
```
it's bounded by:
```
  |h_0| < 4 * 3 * 1.16 * 2^-21 * 4 < 2^-17.
```
So in the first iteration step, we use:
```
  x_1 = x_0 * (1 - (1/3) * h_n + (2/9) * h_n^2 - (14/81) * h_n^3)
```
Its relative error is bounded by:
```
  | x_1 / a^(-2/3) - 1 | < 35/242 * |h_0|^4 < 2^-70.
```
Then we perform Ziv's rounding test and check if the answer is exact.
This step is done in double-double precision.

4. **Second Newton iteration**

If the Ziv's rounding test from the previous step fails, we define the
error
term:
```
  h_1 = x_1^3 * a^2 - 1,
```
And perform another iteration:
```
  x_2 = x_1 * (1 - h_1 / 3)
```
with the relative errors exceed the precision of double-double.
We then check the Ziv's accuracy test with relative errors < 2^-102 to
compensate for rounding errors.

5. **Final iteration**
 
If the Ziv's accuracy test from the previous step fails, we perform
another
iteration in 128-bit precision and check for exact outputs.


  Commit: ac1d5facf60c6e83418f8ab9d3fdfb1a8004d4aa
      https://github.com/llvm/llvm-project/commit/ac1d5facf60c6e83418f8ab9d3fdfb1a8004d4aa
  Author: lntue <35648136+lntue at users.noreply.github.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M libc/src/math/generic/cbrt.cpp

  Log Message:
  -----------
  [libc][math] Remove constexpr quantifier from cbrt's utility functions. (#99349)

Fix full build failures:
https://lab.llvm.org/buildbot/#/builders/131/builds/2342


  Commit: e5ccc7136dab209d769cc97efd7f1596c12d5bec
      https://github.com/llvm/llvm-project/commit/e5ccc7136dab209d769cc97efd7f1596c12d5bec
  Author: Mikhail R. Gadelha <mikhail at igalia.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M libc/cmake/modules/LLVMLibCCheckMPFR.cmake
    M libc/test/src/CMakeLists.txt

  Log Message:
  -----------
  [libc] Add missing -latomic for rv32 (#99337)

On rv32, libatomic is needed to build libc when mpfr and gmp are enabled.


  Commit: a10570ba91050a394ca7766a6d1386dc17f8acc6
      https://github.com/llvm/llvm-project/commit/a10570ba91050a394ca7766a6d1386dc17f8acc6
  Author: Eli Friedman <efriedma at quicinc.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/lib/MC/MachObjectWriter.cpp
    A llvm/test/MC/MachO/section-offset-overflow.s

  Log Message:
  -----------
  [MachO] Detect overflow in section offset. (#98685)

The section offset field is only 32 bits; if the computed section offset
is larger, make sure we don't emit a corrupt object file.


  Commit: 2d42f840a2f08ce9635bafe56b2817d8b5099d06
      https://github.com/llvm/llvm-project/commit/2d42f840a2f08ce9635bafe56b2817d8b5099d06
  Author: Eli Friedman <efriedma at quicinc.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/lib/MC/MCAsmStreamer.cpp
    A llvm/test/CodeGen/X86/global-with-max-align.ll

  Log Message:
  -----------
  [MC] Fix emission in asm of alignment 2^32. (#98688)

The alignment amount was getting corrupted due to accidental truncation.


  Commit: c077a4f305aa7faf92a1438b239078c1da1563a9
      https://github.com/llvm/llvm-project/commit/c077a4f305aa7faf92a1438b239078c1da1563a9
  Author: MaheshRavishankar <1663364+MaheshRavishankar at users.noreply.github.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M mlir/lib/Dialect/Tensor/Transforms/EmptyOpPatterns.cpp
    M mlir/test/Dialect/Tensor/fold-empty-op.mlir

  Log Message:
  -----------
  [mlir][Tensor] Add pattern to fold concats of empty. (#98994)

A concatenation of empty tensors can be replaced by a single empty
tensor of the concatenated shape. Add this pattern to
`populateFoldTensorEmptyPatterns`.


  Commit: c736ca85c38ce9c30a2286382d8023604f34f9e8
      https://github.com/llvm/llvm-project/commit/c736ca85c38ce9c30a2286382d8023604f34f9e8
  Author: matthew-f <551862+matthew-f at users.noreply.github.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M clang-tools-extra/clang-tidy/bugprone/UnusedReturnValueCheck.cpp

  Log Message:
  -----------
  [clang-tidy] Ensure functions are anchored in the global namespace (#99084)

The regular expressions match functions that aren't anchored in the
global namespace. For example `::connect` matches `QObject::connect`
This change is to remove these false positives


  Commit: 86ef699060394c82dcda7e86ff70d8cabeabcc2a
      https://github.com/llvm/llvm-project/commit/86ef699060394c82dcda7e86ff70d8cabeabcc2a
  Author: Jason Molenda <jmolenda at apple.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M lldb/source/Core/DynamicLoader.cpp
    M lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
    M lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.h
    M lldb/source/Target/Process.cpp

  Log Message:
  -----------
  [lldb] progressive progress reporting for darwin kernel/firmware (#98845)

When doing firmware/kernel debugging, it is frequent that binaries and
debug info need to be retrieved / downloaded, and the lack of progress
reports made for a poor experience, with lldb seemingly hung while
downloading things over the network. This PR adds progress reports to
the critical sites for these use cases.


  Commit: c7b08ac01fa98db7c9ec7c3bbe9784c2d20f91e9
      https://github.com/llvm/llvm-project/commit/c7b08ac01fa98db7c9ec7c3bbe9784c2d20f91e9
  Author: Daniel Bertalan <dani at danielbertalan.dev>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M lld/test/MachO/implicit-and-allowable-clients.test

  Log Message:
  -----------
  [lld-macho][test] Require "shell" feature for usage of `ln -s` (#99355)

The use of `ln -s` is not guaranteed to be supported on Windows.


  Commit: 6867e49fc80c8468f9a5a8376ce7d3b89fd4fb51
      https://github.com/llvm/llvm-project/commit/6867e49fc80c8468f9a5a8376ce7d3b89fd4fb51
  Author: Angel Zhang <angel.zhang at amd.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M mlir/include/mlir/Conversion/Passes.td
    M mlir/include/mlir/Dialect/SPIRV/Transforms/SPIRVConversion.h
    M mlir/lib/Conversion/ConvertToSPIRV/ConvertToSPIRVPass.cpp
    M mlir/lib/Dialect/SPIRV/Transforms/CMakeLists.txt
    M mlir/lib/Dialect/SPIRV/Transforms/SPIRVConversion.cpp
    M mlir/test/Conversion/ConvertToSPIRV/arith.mlir
    M mlir/test/Conversion/ConvertToSPIRV/combined.mlir
    A mlir/test/Conversion/ConvertToSPIRV/func-signature-vector-unroll.mlir
    M mlir/test/Conversion/ConvertToSPIRV/index.mlir
    M mlir/test/Conversion/ConvertToSPIRV/scf.mlir
    M mlir/test/Conversion/ConvertToSPIRV/simple.mlir
    M mlir/test/Conversion/ConvertToSPIRV/ub.mlir
    M mlir/test/Conversion/ConvertToSPIRV/vector.mlir
    M mlir/test/lib/Conversion/CMakeLists.txt
    A mlir/test/lib/Conversion/ConvertToSPIRV/CMakeLists.txt
    A mlir/test/lib/Conversion/ConvertToSPIRV/TestSPIRVFuncSignatureConversion.cpp
    M mlir/tools/mlir-opt/CMakeLists.txt
    M mlir/tools/mlir-opt/mlir-opt.cpp
    M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
    M utils/bazel/llvm-project-overlay/mlir/test/BUILD.bazel

  Log Message:
  -----------
  [mlir][spirv] Implement vector type legalization for function signatures (#98337)

### Description
This PR implements a minimal version of function signature conversion to
unroll vectors into 1D and with a size supported by SPIR-V (2, 3 or 4
depending on the original dimension). This PR also includes new unit
tests that only check for function signature conversion.

### Future Plans
- Check for capabilities that support vectors of size 8 or 16.
- Set up `OneToNTypeConversion` and `DialectConversion` to replace the
current implementation that uses `GreedyPatternRewriteDriver`.
- Introduce other vector unrolling patterns to cancel out the
`vector.insert_strided_slice` and `vector.extract_strided_slice` ops and
fully legalize the vector types in the function body.
- Handle `func::CallOp` and declarations.
- Restructure the code in `SPIRVConversion.cpp`.
- Create test passes for testing sets of patterns in isolation.
- Optimize the way original shape is splitted into target shapes, e.g.
`vector<5xi32>` can be splitted into `vector<4xi32>` and
`vector<1xi32>`.

---------

Co-authored-by: Jakub Kuderski <kubakuderski at gmail.com>


  Commit: d748dab6010dfd4ddf63cd59c0a89487824aa038
      https://github.com/llvm/llvm-project/commit/d748dab6010dfd4ddf63cd59c0a89487824aa038
  Author: Keith Smiley <keithbsmiley at gmail.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

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

  Log Message:
  -----------
  [bazel] Port #98653 (#99356)


  Commit: 963e25ae60f43ea77b686bd506171ee7482f044a
      https://github.com/llvm/llvm-project/commit/963e25ae60f43ea77b686bd506171ee7482f044a
  Author: Nikolas Klauser <nikolasklauser at berlin.de>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M libcxx/include/__type_traits/add_pointer.h

  Log Message:
  -----------
  [libc++][NFC] Remove a few unused includes (#98808)


  Commit: 81955da03bd4731b668fee401b3d6aca8b7d4da6
      https://github.com/llvm/llvm-project/commit/81955da03bd4731b668fee401b3d6aca8b7d4da6
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M libcxx/CMakeLists.txt
    M libcxx/benchmarks/CMakeLists.txt
    M libcxx/benchmarks/lit.cfg.py
    M libcxx/docs/BuildingLibcxx.rst
    M libcxx/docs/ReleaseNotes/19.rst
    M libcxx/docs/TestingLibcxx.rst

  Log Message:
  -----------
  [libc++] Remove special handling of the native C++ library in benchmarks (#98529)

There were some ad-hoc settings that allowed running the benchmarks
against the native C++ Standard Library. While this ability is very
useful, it was done before the test suite was quite independent of
libc++ itself. Instead, it is better to streamline running the
benchmarks on the native standard library by using a custom Lit
configuration like we do with the test suite.

A follow-up patch will rework the integration of benchmarks with the Lit
configuration used for the test suite so that we can reuse the same
mechanism for both, making it easy to benchmark the native standard
library.

It will also make benchmarks way more user-friendly to run since we will
be able to run them like we run individual tests, which is a pain point
right now.


  Commit: 18cdfa72e046a40deeee4372ee98602fd1a65a94
      https://github.com/llvm/llvm-project/commit/18cdfa72e046a40deeee4372ee98602fd1a65a94
  Author: Lei Wang <wlei at fb.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/include/llvm/ProfileData/SampleProf.h
    M llvm/include/llvm/Transforms/IPO/SampleProfileMatcher.h
    M llvm/include/llvm/Transforms/Utils/SampleProfileLoaderBaseImpl.h
    M llvm/lib/ProfileData/SampleProf.cpp
    M llvm/lib/Transforms/IPO/SampleProfile.cpp
    M llvm/lib/Transforms/IPO/SampleProfileMatcher.cpp
    M llvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll
    M llvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll
    A llvm/test/Transforms/SampleProfile/Inputs/pseudo-probe-stale-profile-renaming-recursive.prof
    A llvm/test/Transforms/SampleProfile/Inputs/pseudo-probe-stale-profile-renaming.prof
    M llvm/test/Transforms/SampleProfile/non-probe-stale-profile-matching.ll
    M llvm/test/Transforms/SampleProfile/pseudo-probe-stale-profile-matching-LCS.ll
    A llvm/test/Transforms/SampleProfile/pseudo-probe-stale-profile-renaming-recursive.ll
    A llvm/test/Transforms/SampleProfile/pseudo-probe-stale-profile-renaming.ll

  Log Message:
  -----------
  [SampleFDO] Stale profile call-graph matching (#95135)

Profile staleness could be due to function renaming. Given that sample
profile loader relies on exact string matching, a trivial change in the
function signature( such as `int foo()` --> `long foo()` ) can make the
mangled name different, the function profile(including all nested
children profile) becomes unavailable.

This patch introduces stale profile call-graph level matching, targeting
at identifying the trivial function renaming and reusing the old
function profile.

Some noteworthy details:

1. Extend the LCS based CFG level matching to identify new function. 
- Extend to match function and profile have different name instead of
the exact function name matching. This leverages LCS, i.e during the
finding of callsite anchor matching, when two function name are
different, try matching the functions instead of return.
- In LCS, the equal function check is replaced by
`functionMatchesProfile`.
- Only try matching functions that are new functions(neither appears on
each side). This reduces the matching scope as we don't need to match
the originally matched function.
2.  Determine the matching by call-site anchor similarity check.
- A new function `functionMatchesProfile(IRFunc, ProfFunc)` is used to
check the renaming for the possible <IRFunc, ProfFunc> pair, use the
LCS(diff) matching to compute the equal set and we define: `Similarity =
|equalSet * 2| / (|A| + |B|)`. The profile name is marked as renamed if
the similarity is above a
threshold(`-func-profile-similarity-threshold`)

3.  Process the matching in top-down function order 
- when a caller's is done matching, the new function names are saved for
later use, using top-down order will maximize the reused results.
- `ProfileNameToFuncMap` is used to save or cache the matching result.
4. Update the original profile at the end using `ProfileNameToFuncMap`.

5. Added a new switch --salvage-unused-profile to control this, default
is false.

Verified on one Meta's internal big service, confirmed 90%+ of the found
renaming pair is good. (There could be incorrect renaming pair if the
num of the anchor is small, but checked that those functions are simple
cold function)


  Commit: 0bb68b55715487447ffceaa1ab59f7a0bc8c7979
      https://github.com/llvm/llvm-project/commit/0bb68b55715487447ffceaa1ab59f7a0bc8c7979
  Author: Doug Wyatt <doug at sonosphere.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M clang/include/clang/AST/ASTContext.h
    M clang/include/clang/AST/Type.h
    M clang/lib/AST/ASTContext.cpp
    M clang/lib/AST/Type.cpp
    M clang/lib/Sema/Sema.cpp
    M clang/lib/Sema/SemaDecl.cpp
    M clang/lib/Sema/SemaDeclCXX.cpp
    M clang/lib/Sema/SemaOverload.cpp

  Log Message:
  -----------
  Performance optimizations for function effects (nonblocking attribute etc.) (#96844)

- Put new FunctionProtoType trailing objects last.
- Inline FunctionEffectsRef::get()
- Manually inline FunctionEffectsRef::Profile().

---------

Co-authored-by: Doug Wyatt <dwyatt at apple.com>


  Commit: 0778f5c1f11da599b71d6c9f5990fd880ff7cb46
      https://github.com/llvm/llvm-project/commit/0778f5c1f11da599b71d6c9f5990fd880ff7cb46
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M lld/ELF/LinkerScript.h
    M lld/ELF/Relocations.cpp
    M lld/ELF/Relocations.h
    M lld/ELF/ScriptParser.cpp
    M lld/ELF/Writer.cpp
    M lld/docs/ReleaseNotes.rst
    A lld/test/ELF/linkerscript/nocrossrefs.test

  Log Message:
  -----------
  [ELF] Support NOCROSSREFS and NOCROSSERFS_TO

Implement the two commands described by
https://sourceware.org/binutils/docs/ld/Miscellaneous-Commands.html

After `outputSections` is available, check each output section described
by at least one `NOCROSSREFS`/`NOCROSSERFS_TO` command. For each checked
output section, scan relocations from its input sections.
This step is slow, therefore utilize `parallelForEach(isd->sections, ...)`.

To support non SHF_ALLOC sections, `InputSectionBase::relocations`
(empty) cannot be used. In addition, we may explore eliminating this
member to speed up relocation scanning.

Some parse code is adapted from #95714.

Close #41825

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


  Commit: 93d38d7f08864397f1e751c8cecde5ea302ecced
      https://github.com/llvm/llvm-project/commit/93d38d7f08864397f1e751c8cecde5ea302ecced
  Author: Leandro Lupori <leandro.lupori at linaro.org>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx-simulators/unique_ptr/main.cpp

  Log Message:
  -----------
  [lldb][test] Fix simulator test for std::unique_ptr (#99357)

libcxx-simulators/unique_ptr/main.cpp uses __builtin_printf, that
maps to printf on Windows. Include stdio.h to avoid linker errors
on Windows.
See https://lab.llvm.org/buildbot/#/builders/141/builds/853


  Commit: 858147d0b88b50f6829834a059d95924ea8e5d4d
      https://github.com/llvm/llvm-project/commit/858147d0b88b50f6829834a059d95924ea8e5d4d
  Author: Petr Hosek <phosek at google.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

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

  Log Message:
  -----------
  [CMake][Fuchsia] Include new/delete in baremetal targets (#99279)

These don't include libcxxabi yet so we need new/delete in libcxx.


  Commit: e3b8d3649789a59e54a32998780fb64d0663284c
      https://github.com/llvm/llvm-project/commit/e3b8d3649789a59e54a32998780fb64d0663284c
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/lib/Target/ARC/ARCISelLowering.cpp
    M llvm/lib/Target/CSKY/CSKYISelLowering.cpp

  Log Message:
  -----------
  [ARC,CSKY] Update getMemcpy after #98969


  Commit: 321a0c00425adeab84bce657cac85ae4634df910
      https://github.com/llvm/llvm-project/commit/321a0c00425adeab84bce657cac85ae4634df910
  Author: Zahira Ammarguellat <zahira.ammarguellat at intel.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M clang/include/clang/AST/Expr.h
    M clang/include/clang/AST/Stmt.h
    M clang/lib/CodeGen/CGExprComplex.cpp
    M clang/test/CodeGen/pragma-cx-limited-range.c

  Log Message:
  -----------
  The pragma STDC CX_LIMITED_RANGE ON should have precedence. (#98520)

The `pragma STDC CX_LIMITED_RANGE` should have precedence over the
command line `-fcomplex-arithmetic`.


  Commit: ddbf5ea6d48d3fbf5300309ca009f9e4e67fb58a
      https://github.com/llvm/llvm-project/commit/ddbf5ea6d48d3fbf5300309ca009f9e4e67fb58a
  Author: vporpo <vporpodas at google.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/include/llvm/SandboxIR/SandboxIR.h
    M llvm/lib/SandboxIR/SandboxIR.cpp

  Log Message:
  -----------
  [SandboxIR][NFC] Add some comments (#99359)


  Commit: 093f0a4770ec9bde9f7a21cfe9c5ec5b20a923a8
      https://github.com/llvm/llvm-project/commit/093f0a4770ec9bde9f7a21cfe9c5ec5b20a923a8
  Author: Philip Reames <preames at rivosinc.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/test/Transforms/InstCombine/vector-logical-reductions.ll

  Log Message:
  -----------
  [instcombine] Improve coverage for reductions of i1 types

In advance of an upcoming change to generalize some of this to scalable
vector types.


  Commit: ead486ca61ab06d46aa4b30c91d1f40e5e5e43e5
      https://github.com/llvm/llvm-project/commit/ead486ca61ab06d46aa4b30c91d1f40e5e5e43e5
  Author: Saiyedul Islam <Saiyedul.Islam at amd.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

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

  Log Message:
  -----------
  [ClangLinkerWrapper] Fix intermediate file naming for multi-arch compilation (#99325)

When save-temps is enabled and the given offload-archs differ
only in target features with the same arch, the intermediate
postlink.bc and postopt.bc files were getting overwritten. This
fix, suffixes the intermediate file names with the complete
TargetID.

E.g. `helloworld.amdgcn-amd-amdhsa.gfx90a:xnack+.postlink.bc`
and `helloworld.amdgcn-amd-amdhsa.gfx90a:xnack+.postopt.bc`


  Commit: 130ef7375493b560df08546666338233bacf95e5
      https://github.com/llvm/llvm-project/commit/130ef7375493b560df08546666338233bacf95e5
  Author: Petr Hosek <phosek at google.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

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

  Log Message:
  -----------
  [CMake][Fuchsia] Install libc++ for baremetal targets (#99372)

We already build the library and want to install it also.


  Commit: 194f98c2210bf40d0490613fddbf83e04c18ad9b
      https://github.com/llvm/llvm-project/commit/194f98c2210bf40d0490613fddbf83e04c18ad9b
  Author: Xing Xue <xingxue at outlook.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M libcxx/cmake/caches/AIX.cmake
    M libcxx/cmake/caches/s390x-ibm-zos-ascii.cmake
    M libcxx/cmake/caches/s390x-ibm-zos.cmake
    M libcxx/include/__configuration/abi.h
    M libcxx/include/ios
    A libcxx/test/std/input.output/iostream.format/std.manip/setfill_wchar_max.pass.cpp

  Log Message:
  -----------
  [libc++] basic_ios<wchar_t> cannot store fill character WCHAR_MAX (#89305)

`libcxx std::basic_ios` uses `WEOF` to indicate the `fill` value is
uninitialized. On some platforms (e.g AIX and zOS in 64-bit mode)
`wchar_t` is 4 bytes `unsigned` and `wint_t` is also 4 bytes which means
`WEOF` cannot be distinguished from `WCHAR_MAX` by
`std::char_traits<wchar_t>::eq_int_type()`, meaning this valid character
value cannot be stored on affected platforms (as the implementation
triggers reinitialization to `widen(’ ’)`).

This patch introduces a new helper class `_FillHelper` uses a boolean
variable to indicate whether the fill character has been initialized,
which is used by default in libcxx ABI version 2. The patch does not
affect ABI version 1 except for targets AIX in 32- and 64-bit and z/OS
in 64-bit (so that the layout of the implementation is compatible with
the current IBM system provided libc++)

This is a continuation of Phabricator patch
[D124555](https://reviews.llvm.org/D124555). This patch uses a modified
version of the [approach](https://reviews.llvm.org/D124555#3566746)
suggested by @ldionne .

---------

Co-authored-by: Louis Dionne <ldionne.2 at gmail.com>
Co-authored-by: David Tenty <daltenty.dev at gmail.com>


  Commit: da5264efa3ae50d61a4fc584f8c4f60a51539a96
      https://github.com/llvm/llvm-project/commit/da5264efa3ae50d61a4fc584f8c4f60a51539a96
  Author: Angel Zhang <angel.zhang at amd.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M utils/bazel/README.md

  Log Message:
  -----------
  [bazel][docs] Update build documentation (#99339)

This PR updates the Quick Start section to provide more detailed build
instructions.


  Commit: 21e6777957457451196084cd48ebc42bce9619f0
      https://github.com/llvm/llvm-project/commit/21e6777957457451196084cd48ebc42bce9619f0
  Author: Jordan Rupprecht <rupprecht at google.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M mlir/include/mlir/CAPI/Rewrite.h

  Log Message:
  -----------
  [mlir][NFC] Add rewrite header to fix standalone header compile (#99370)

This uses `MlirRewriterBase` from from `mlir-c/Rewrite.h` without
including it.


  Commit: ff0821583eab1651ff126bbf4f881e6163b67435
      https://github.com/llvm/llvm-project/commit/ff0821583eab1651ff126bbf4f881e6163b67435
  Author: Thurston Dang <thurston at google.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    A llvm/test/Instrumentation/MemorySanitizer/AArch64/neon_vst.ll

  Log Message:
  -----------
  [msan] Precommit MSan Arm NEON vst tests (#98247)

These tests show that MSan currently does not handle vst (or vld)
correctly.


  Commit: 51122fb4469b56b207bcae0c39182f961e4276fd
      https://github.com/llvm/llvm-project/commit/51122fb4469b56b207bcae0c39182f961e4276fd
  Author: Vladislav Khmelevsky <och95 at yandex.ru>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M bolt/lib/Rewrite/RewriteInstance.cpp

  Log Message:
  -----------
  [BOLT][NFC] Fix build (#99361)

On clang 14 the build is failing with:
reference to local binding 'ParentName' declared in enclosing function
'llvm::bolt::RewriteInstance::registerFragments'


  Commit: a51f343b433120e45f186e5507e8a522d4d7192f
      https://github.com/llvm/llvm-project/commit/a51f343b433120e45f186e5507e8a522d4d7192f
  Author: AtariDreams <gfunni234 at gmail.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
    M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
    M llvm/test/CodeGen/AArch64/GlobalISel/combine-udiv.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/combine-udiv.mir
    A llvm/test/CodeGen/X86/udiv-exact.ll

  Log Message:
  -----------
  [CodeGen] Emit more efficient magic numbers for exact udivs (#87161)

Have simpler lowering for exact udivs in both SelectionDAG and
GlobalISel.

The algorithm is the same between unsigned exact divs and signed divs
save for arithmetic vs logical shift for even divisors, according to
Hacker's Delight, 2nd Edition, page 242.


  Commit: d85f1054fbb04c5299848bf81aa350442f9a56c7
      https://github.com/llvm/llvm-project/commit/d85f1054fbb04c5299848bf81aa350442f9a56c7
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/test/CodeGen/RISCV/rvv/ctlz-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/cttz-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-ctlz.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-cttz.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-shuffle-rotate.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vrol.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vror.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vwadd.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vwmul.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vwsll.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vwsub.ll
    M llvm/test/CodeGen/RISCV/rvv/vrol-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vror-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vwadd-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vwsll-sdnode.ll

  Log Message:
  -----------
  [RISCV] Teach fillUpExtensionSupportForSplat to handle nxvXi64 VMV_V_X_VL on RV32. (#99251)

A nxvXi64 VMV_V_X_VL on RV32 sign extends its 32 bit input to 64 bits.
If that input is positive, the sign extend can also be considered as a
zero extend.


  Commit: b5e4d323badbd24324bfab4366b670977b16df07
      https://github.com/llvm/llvm-project/commit/b5e4d323badbd24324bfab4366b670977b16df07
  Author: Jordan Rupprecht <rupprecht at google.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

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

  Log Message:
  -----------
  [bazel][mlir] Add MathToROCDL to fix layering check (#99377)


  Commit: 8044a863518166db1a1e05df5c76e26d53dbbcb9
      https://github.com/llvm/llvm-project/commit/8044a863518166db1a1e05df5c76e26d53dbbcb9
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M compiler-rt/www/index.html

  Log Message:
  -----------
  [compiler-rt][www] Update standalone build instruction (#98707)

Follow up to #71500


  Commit: 495d3ea989d4e97ce77ee73d6b35b171a7346019
      https://github.com/llvm/llvm-project/commit/495d3ea989d4e97ce77ee73d6b35b171a7346019
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/lib/CodeGen/MachineSink.cpp
    A llvm/test/CodeGen/RISCV/sink-and-fold-crash.mir

  Log Message:
  -----------
  [MachineSink][RISCV] Only call isConstantPhysReg or isIgnorableUse for uses. (#99363)

The included test case contains X0 as a def register. X0 is considered a
constant register when it is a use. When its a def, it means to throw
away the result value.

If we treat it as a constant register here, we will execute the continue
and not assign `DefReg` to any register. This will cause a crash when
trying to get the register class for `DefReg` after the loop.

By only checking isConstantPhysReg for uses, we will reach the `return
false` a little further down and stop processing this instruction.


  Commit: 63fae3ed656241a1d6a19c3e773ecc9bfff3e182
      https://github.com/llvm/llvm-project/commit/63fae3ed656241a1d6a19c3e773ecc9bfff3e182
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUMachineCFGStructurizer.cpp
    M llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp
    M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
    M llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
    M llvm/lib/Target/AMDGPU/GCNILPSched.cpp
    M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp
    M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.cpp
    M llvm/lib/Target/AMDGPU/MCTargetDesc/R600MCCodeEmitter.cpp
    M llvm/lib/Target/AMDGPU/R600ControlFlowFinalizer.cpp
    M llvm/lib/Target/AMDGPU/R600ISelDAGToDAG.cpp
    M llvm/lib/Target/AMDGPU/R600ISelLowering.cpp
    M llvm/lib/Target/AMDGPU/R600InstrInfo.cpp
    M llvm/lib/Target/AMDGPU/R600MachineCFGStructurizer.cpp
    M llvm/lib/Target/AMDGPU/R600MachineScheduler.cpp
    M llvm/lib/Target/AMDGPU/SIFixSGPRCopies.cpp
    M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
    M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
    M llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp
    M llvm/lib/Target/AMDGPU/SIMachineScheduler.cpp
    M llvm/lib/Target/AMDGPU/SIOptimizeExecMasking.cpp
    M llvm/lib/Target/AMDGPU/SIPeepholeSDWA.cpp
    M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp

  Log Message:
  -----------
  [AMDGPU] clang-tidy: no else after return etc. NFC. (#99298)


  Commit: 2bb65660ae8b9b2e1896b07b881505a4ffc0393b
      https://github.com/llvm/llvm-project/commit/2bb65660ae8b9b2e1896b07b881505a4ffc0393b
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/test/Transforms/LoopVectorize/X86/interleave-cost.ll

  Log Message:
  -----------
  [LV] Allow re-processing of operands of instrs feeding interleave group

Follow up to d216615518 to update dead interleave group pointer detection
to allow re-processing of operands of instructions determined to only feed
interleave groups.

This is needed because instructions feeding interleave group pointers
can become dead in any order, as per the newly added test case.


  Commit: a742693f6104055ec026852a70a68275fb82f7a0
      https://github.com/llvm/llvm-project/commit/a742693f6104055ec026852a70a68275fb82f7a0
  Author: Mircea Trofin <mtrofin at google.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/unittests/ProfileData/PGOCtxProfReaderWriterTest.cpp

  Log Message:
  -----------
  [ctx_prof] Add missing test for `PGOContextualProfile::getContainedGuids`


  Commit: 33cb29cc3e38990173688aee353d6cbeeb187728
      https://github.com/llvm/llvm-project/commit/33cb29cc3e38990173688aee353d6cbeeb187728
  Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M flang/include/flang/Semantics/tools.h
    M flang/lib/Lower/ConvertVariable.cpp
    M flang/lib/Optimizer/Dialect/CUF/CUFOps.cpp
    M flang/test/Fir/cuf-invalid.fir
    M flang/test/Lower/CUDA/cuda-allocatable.cuf

  Log Message:
  -----------
  [flang][cuda] Use cuf.alloc/cuf.free for local descriptor  (#98518)

Local descriptor for cuda allocatable need to be handled on host and
device. One solution is to duplicate the descriptor (one on the host and
one on the device) and keep them in sync or have the descriptor in
managed/unified memory so we don't to take care of any sync.
The second solution is probably the one we will implement. In order to
have more flexibility on how descriptor representing cuda allocatable
are allocated, this patch updates the lowering to use the cuf operations
alloc and free to managed them.


  Commit: fffe2728534a238ff0024e11a18280f85094dcde
      https://github.com/llvm/llvm-project/commit/fffe2728534a238ff0024e11a18280f85094dcde
  Author: Teresa Johnson <tejohnson at google.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

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

  Log Message:
  -----------
  [ADT] Make set_subtract more efficient when subtrahend is larger (NFC) (#98702)

If the subtrahend is larger, iterate the minuend set instead.

Noticed when subtracting a large set from a number of other smaller
sets for an upcoming MemProf change, this change makes that much faster.

I subsequently found a couple of callsites in one file that were calling
set_subtract with a vector subtrahend, which doesn't have the "count()"
interface. Add a separate helper for subtracting a vector.


  Commit: 306196349f7e7a92156ca733f876d503049696e7
      https://github.com/llvm/llvm-project/commit/306196349f7e7a92156ca733f876d503049696e7
  Author: Teresa Johnson <tejohnson at google.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

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

  Log Message:
  -----------
  Revert "[ADT] Make set_subtract more efficient when subtrahend is larger (NFC)" (#99386)

Reverts llvm/llvm-project#98702

This broke some mlir code and needs investigation.


  Commit: 1ecffdaf27cb456aecc5a1c0272d3994d26bf645
      https://github.com/llvm/llvm-project/commit/1ecffdaf27cb456aecc5a1c0272d3994d26bf645
  Author: jameshu15869 <55058507+jameshu15869 at users.noreply.github.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M libc/benchmarks/gpu/CMakeLists.txt
    M libc/cmake/modules/LLVMLibCTestRules.cmake
    M libc/utils/gpu/loader/Loader.h
    M libc/utils/gpu/loader/Main.cpp
    M libc/utils/gpu/loader/amdgpu/Loader.cpp
    M libc/utils/gpu/loader/nvptx/Loader.cpp

  Log Message:
  -----------
  [libc] Add Kernel Resource Usage to nvptx-loader (#97503)

This PR allows `nvptx-loader` to read the resource usage of `_start`,
`_begin`, and `_end` when executing CUDA binaries.

Example output:
```
$ nvptx-loader --print-resource-usage libc/benchmarks/gpu/src/ctype/libc.benchmarks.gpu.src.ctype.isalnum_benchmark.__build__
[ RUN      ] LlvmLibcIsAlNumGpuBenchmark.IsAlnumWrapper
[       OK ] LlvmLibcIsAlNumGpuBenchmark.IsAlnumWrapper: 93 cycles, 76 min, 470 max, 23 iterations, 78000 ns, 80 stddev
_begin registers: 25
_start registers: 80
_end registers: 62
  ```

---------

Co-authored-by: Joseph Huber <huberjn at outlook.com>


  Commit: 82b800ecb35fb46881aa52000fa40b1b99aa654e
      https://github.com/llvm/llvm-project/commit/82b800ecb35fb46881aa52000fa40b1b99aa654e
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

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

  Log Message:
  -----------
  [SLP][NFC]Limit number of the external uses analysis, NFC.

BoUpSLP::buildExternalUses runs through all the users of the vectorized
scalars, which may require significant amount of time, if there are too
many users. Limited the analysis, if there are too many users, all of
them are replaced, not individually.


  Commit: 10b4834b76e0473eee3eb70490dd39366589534d
      https://github.com/llvm/llvm-project/commit/10b4834b76e0473eee3eb70490dd39366589534d
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M libc/utils/gpu/loader/amdgpu/Loader.cpp

  Log Message:
  -----------
  [libc] Fix wrong printf usage in AMDGPU loader


  Commit: f6add66b720f85bf1092af7d6702b7397da57349
      https://github.com/llvm/llvm-project/commit/f6add66b720f85bf1092af7d6702b7397da57349
  Author: Philip Reames <preames at rivosinc.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
    M llvm/test/Transforms/InstCombine/vector-logical-reductions.ll

  Log Message:
  -----------
  [instcombine] Extend logical reduction canonicalization to scalable vectors (#99366)

These transformations do not depend on the type being fixed in size, so
enable them for scalable vectors too. Unlike for fixed vectors, these
are only a canonicalization - the bitcast lowering for and/or/add is not
legal on a scalable vector type.


  Commit: d08527ee3ee2dc1e90d2afcc6e5982d0997dad20
      https://github.com/llvm/llvm-project/commit/d08527ee3ee2dc1e90d2afcc6e5982d0997dad20
  Author: Joshua Baehring <98630690+JoshuaMBa at users.noreply.github.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M compiler-rt/lib/scudo/standalone/string_utils.h
    M compiler-rt/lib/scudo/standalone/tests/vector_test.cpp
    M compiler-rt/lib/scudo/standalone/vector.h

  Log Message:
  -----------
  [scudo] Add static vector functionality. (#98986)

The scudo vector implementation maintains static local data before 
switching to dynamically allocated data as the array size grows.
Users of the vector must now specify the size of the static local data 
through the vector template (the default size has been removed). 
If 0 is specified for the size of the static local data, an assertion
will
be triggered.


  Commit: 07f8a65d09608d67bfd6adbd62bb0999c7363456
      https://github.com/llvm/llvm-project/commit/07f8a65d09608d67bfd6adbd62bb0999c7363456
  Author: Oliver Hunt <oliver at apple.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M clang/lib/CodeGen/CGDeclCXX.cpp
    M clang/lib/CodeGen/CodeGenFunction.h
    M clang/lib/CodeGen/ItaniumCXXABI.cpp
    A clang/test/CodeGenCXX/ptrauth-static-destructors.cpp
    A clang/test/CodeGenCXX/ptrauth-throw.cpp

  Log Message:
  -----------
  [clang] Ensure pointers passed to runtime support functions are correctly signed (#98276)

Updates codegen for global destructors and raising exceptions to ensure
that the function pointers being passed are signed using the correct
schema.

Notably this requires that CodeGenFunction::createAtExitStub to return
an opaque Constant* rather than a Function* as the value being emitted
is no longer necessarily a raw function pointer depending on the
configured ABI.

Co-Authored-By: Akira Hatanaka <ahatanaka at apple.com>
Co-Authored-By: John McCall <rjmccall at apple.com>


  Commit: 7647174738bf1b8e58c854c488183a849403d5db
      https://github.com/llvm/llvm-project/commit/7647174738bf1b8e58c854c488183a849403d5db
  Author: David Truby <david.truby at arm.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M clang/include/clang/Driver/Options.td
    M flang/test/Driver/linker-flags.f90

  Log Message:
  -----------
  [flang] Add -rtlib flag (#99058)

This patch allows the -rtlib flag with flang-new to select between the
libgcc_s and compiler-rt runtimes. The behaviour is identical to the
same flag with clang.


  Commit: 83251a22f623df8d27b6184d19b24c18d314f2bd
      https://github.com/llvm/llvm-project/commit/83251a22f623df8d27b6184d19b24c18d314f2bd
  Author: Scallop Ye <yescallop at gmail.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M compiler-rt/lib/fuzzer/FuzzerFork.cpp

  Log Message:
  -----------
  [libFuzzer] Fix incorrect coverage number in fork mode (#82335)

Closes #82307.

I built LLVM with the changes and tested fuzzing in fork mode. The
coverage number was correct:
```
[ye at ye-arch ~]$ /home/ye/work/llvm-project/build/bin/clang++ -fsanitize=fuzzer test_fuzzer.cc
[ye at ye-arch ~]$ ./a.out corpus -fork=4
INFO: Running with entropic power schedule (0xFF, 100).
INFO: Seed: 3152497917
INFO: Loaded 1 modules   (40 inline 8-bit counters): 40 [0x5aa6f7b310d0, 0x5aa6f7b310f8), 
INFO: Loaded 1 PC tables (40 PCs): 40 [0x5aa6f7b310f8,0x5aa6f7b31378), 
INFO: -fork=4: fuzzing in separate process(s)
INFO: -fork=4: 56 seed inputs, starting to fuzz in /tmp/libFuzzerTemp.FuzzWithFork54465.dir
#600649: cov: 36 ft: 224 corp: 56 exec/s: 300324 oom/timeout/crash: 0/0/0 time: 2s job: 1 dft_time: 0
#1548208: cov: 36 ft: 224 corp: 56 exec/s: 315853 oom/timeout/crash: 0/0/0 time: 3s job: 2 dft_time: 0
#2465991: cov: 36 ft: 224 corp: 56 exec/s: 229445 oom/timeout/crash: 0/0/0 time: 4s job: 3 dft_time: 0
#3887877: cov: 36 ft: 224 corp: 56 exec/s: 284377 oom/timeout/crash: 0/0/0 time: 5s job: 4 dft_time: 0
```


  Commit: 884772fdd6213c1bc16316b1e57fe08d85bdbc2d
      https://github.com/llvm/llvm-project/commit/884772fdd6213c1bc16316b1e57fe08d85bdbc2d
  Author: Akira Hatanaka <ahatanak at gmail.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/lib/Sema/SemaDecl.cpp
    M clang/test/Sema/attr-weak.c
    M clang/test/SemaCXX/attr-weak.cpp

  Log Message:
  -----------
  [Sema] Don't drop weak_import from a declaration if its definition isn't seen (#85886)

I believe this is what the original commit (33e022650adee965c65f9aea086ee74f3fd1bad5) was trying to do.

This fixes a bug where clang removes the attribute from a declaration that follows a declaration directly contained in a linkage-specification.

rdar://61865848


  Commit: 83fbd79319a4d997520c85ab41997692a58cd958
      https://github.com/llvm/llvm-project/commit/83fbd79319a4d997520c85ab41997692a58cd958
  Author: aaryanshukla <53713108+aaryanshukla at users.noreply.github.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M libc/CMakeLists.txt
    M libc/cmake/modules/LLVMLibCHeaderRules.cmake
    M libc/include/CMakeLists.txt
    M libc/newhdrgen/class_implementation/classes/function.py
    M libc/newhdrgen/header.py

  Log Message:
  -----------
  [libc] newheadergen: configured cmake (#98828)

- all headers in the build system are generated by newheadergen
- tested on gpu-build

---------

Co-authored-by: Rose Zhang <rosezhang at google.com>


  Commit: 9ce5b38dc32a5f023e9824afe246978130b9080e
      https://github.com/llvm/llvm-project/commit/9ce5b38dc32a5f023e9824afe246978130b9080e
  Author: RoseZhang03 <rosezhang at google.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M libc/config/linux/x86_64/headers.txt
    A libc/newhdrgen/yaml/arpa/arpa_inet.yaml
    R libc/newhdrgen/yaml/arpa_inet.yaml
    M libc/newhdrgen/yaml/assert.yaml
    A libc/newhdrgen/yaml/gpu/gpu_rpc.yaml
    M libc/newhdrgen/yaml/math.yaml
    M libc/newhdrgen/yaml/pthread.yaml
    R libc/newhdrgen/yaml/rpc.yaml
    M libc/newhdrgen/yaml/search.yaml
    M libc/newhdrgen/yaml/sys/sys_time.yaml
    M libc/newhdrgen/yaml/wchar.yaml

  Log Message:
  -----------
  [libc] final edits to newheadergen yaml files (#98983)

- final run of integration tests to deal with incorrect YAML input
(finished sys headers, will finish the rest today)
- add any new functions made in recent PRs


  Commit: e0f3484874964ed749355d5a652e876efe3a05de
      https://github.com/llvm/llvm-project/commit/e0f3484874964ed749355d5a652e876efe3a05de
  Author: Jason Molenda <jmolenda at apple.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M .git-blame-ignore-revs

  Log Message:
  -----------
  [lldb][nfc] add an nfc entry to the .git-blame-ignore-revs.


  Commit: 90cbb1ec4ff9c687f7ebca505845388655ed5582
      https://github.com/llvm/llvm-project/commit/90cbb1ec4ff9c687f7ebca505845388655ed5582
  Author: Michael Jones <michaelrj at google.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M libc/config/linux/x86_64/headers.txt

  Log Message:
  -----------
  [libc] Temporarily disable statvfs header (#99405)

The statfvs header was not generating for a while. Patch #98983 added it
to the list of headers, but it's apparently broken right now so this
patch comments it out until it can be fixed.


  Commit: ad023a844ab19f37ea0abd2130ec81ea2663937b
      https://github.com/llvm/llvm-project/commit/ad023a844ab19f37ea0abd2130ec81ea2663937b
  Author: aaryanshukla <53713108+aaryanshukla at users.noreply.github.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M libc/include/CMakeLists.txt

  Log Message:
  -----------
  [libc] newheadergen: cmakelist file changes (#99404)


  Commit: d772cdd6279de1e578dfdfca7432327a1806c659
      https://github.com/llvm/llvm-project/commit/d772cdd6279de1e578dfdfca7432327a1806c659
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

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

  Log Message:
  -----------
  [ADT] Make set_subtract more efficient when subtrahend is larger (NFC) (#99401)

This patch is based on:

  commit fffe2728534a238ff0024e11a18280f85094dcde
  Author: Teresa Johnson <tejohnson at google.com>
  Date:   Wed Jul 17 13:53:10 2024 -0700

This iteration comes with a couple of improvements:

- We now accommodate S2Ty being SmallPtrSet, which has remove_if(pred)
  but not erase(iterator).  (Lack of this code path broke the mlir
  build.)

- The code path for erase(iterator) now pre-increments the iterator to
  avoid problems with iterator invalidation.


  Commit: 21c8c22a93086794c9023bfdbf2fc8f6ff99f90e
      https://github.com/llvm/llvm-project/commit/21c8c22a93086794c9023bfdbf2fc8f6ff99f90e
  Author: aaryanshukla <53713108+aaryanshukla at users.noreply.github.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M libc/newhdrgen/yaml/wchar.yaml

  Log Message:
  -----------
  [libc] newheadergen: removing extra .h (#99408)


  Commit: ab142c635e5edeb381fb3bd0222501cd2108c176
      https://github.com/llvm/llvm-project/commit/ab142c635e5edeb381fb3bd0222501cd2108c176
  Author: aaryanshukla <53713108+aaryanshukla at users.noreply.github.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M libc/include/CMakeLists.txt

  Log Message:
  -----------
  [libc] newheadergen: quick fix to fuchsia build (#99410)


  Commit: d5fe73515a609639c63013478236bd81978db6b7
      https://github.com/llvm/llvm-project/commit/d5fe73515a609639c63013478236bd81978db6b7
  Author: aaryanshukla <53713108+aaryanshukla at users.noreply.github.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M libc/include/CMakeLists.txt

  Log Message:
  -----------
  Revert "[libc] newheadergen: quick fix to fuchsia build" (#99412)

Reverts llvm/llvm-project#99410


  Commit: ad4da8304cd75aecbdbe6d235ec70af8fa9e7bcb
      https://github.com/llvm/llvm-project/commit/ad4da8304cd75aecbdbe6d235ec70af8fa9e7bcb
  Author: aaryanshukla <53713108+aaryanshukla at users.noreply.github.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M libc/include/CMakeLists.txt

  Log Message:
  -----------
  Revert "[libc] newheadergen: cmakelist file changes" (#99413)

Reverts llvm/llvm-project#99404


  Commit: 58d4ca06bdc5e2f8f9bf8bfd22ebd0577557a4fe
      https://github.com/llvm/llvm-project/commit/58d4ca06bdc5e2f8f9bf8bfd22ebd0577557a4fe
  Author: aaryanshukla <53713108+aaryanshukla at users.noreply.github.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M libc/CMakeLists.txt
    M libc/cmake/modules/LLVMLibCHeaderRules.cmake
    M libc/include/CMakeLists.txt
    M libc/newhdrgen/class_implementation/classes/function.py
    M libc/newhdrgen/header.py

  Log Message:
  -----------
  Revert "[libc] newheadergen: configured cmake" (#99414)

Reverts llvm/llvm-project#98828


  Commit: 4283f1ad18db9878b98f98e7a36b4f94ab674d29
      https://github.com/llvm/llvm-project/commit/4283f1ad18db9878b98f98e7a36b4f94ab674d29
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M compiler-rt/test/fuzzer/lit.cfg.py

  Log Message:
  -----------
  [NFC][fuzzer] Remove unhelpful lit notes

They are not actionable.


  Commit: 888b130bdfd98bda71e14fb10893113cbbd15733
      https://github.com/llvm/llvm-project/commit/888b130bdfd98bda71e14fb10893113cbbd15733
  Author: Sam Clegg <sbc at chromium.org>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M lld/wasm/Options.td

  Log Message:
  -----------
  [lld][WebAssembly] Consolidate --fatal-warnings and --no-fatal-warnings options. NFC (#99374)

Also document defaults for boolean options.

See https://reviews.llvm.org/D42859


  Commit: c41fa0fdd7e14019fc48bece2a2b0b00c88c8518
      https://github.com/llvm/llvm-project/commit/c41fa0fdd7e14019fc48bece2a2b0b00c88c8518
  Author: hev <wangrui at loongson.cn>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
    M llvm/test/CodeGen/LoongArch/andn-icmp.ll

  Log Message:
  -----------
  [LoongArch] Remove spurious mask operations from andn->icmp on 16 and 8 bit values (#99272)


  Commit: fe6c24000f2d7316899d4ec4c12273892326ed47
      https://github.com/llvm/llvm-project/commit/fe6c24000f2d7316899d4ec4c12273892326ed47
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M clang-tools-extra/clangd/CMakeLists.txt
    M clang-tools-extra/clangd/ClangdLSPServer.cpp
    M clang-tools-extra/clangd/ClangdLSPServer.h
    M clang-tools-extra/clangd/ClangdServer.cpp
    M clang-tools-extra/clangd/ClangdServer.h
    M clang-tools-extra/clangd/Compiler.h
    M clang-tools-extra/clangd/GlobalCompilationDatabase.cpp
    M clang-tools-extra/clangd/GlobalCompilationDatabase.h
    A clang-tools-extra/clangd/ModulesBuilder.cpp
    A clang-tools-extra/clangd/ModulesBuilder.h
    M clang-tools-extra/clangd/ParsedAST.cpp
    M clang-tools-extra/clangd/Preamble.cpp
    M clang-tools-extra/clangd/Preamble.h
    A clang-tools-extra/clangd/ProjectModules.h
    A clang-tools-extra/clangd/ScanningProjectModules.cpp
    A clang-tools-extra/clangd/ScanningProjectModules.h
    M clang-tools-extra/clangd/test/CMakeLists.txt
    A clang-tools-extra/clangd/test/modules.test
    M clang-tools-extra/clangd/tool/Check.cpp
    M clang-tools-extra/clangd/tool/ClangdMain.cpp
    M clang-tools-extra/clangd/unittests/CMakeLists.txt
    A clang-tools-extra/clangd/unittests/PrerequisiteModulesTest.cpp
    M clang-tools-extra/clangd/unittests/TestFS.h
    M clang-tools-extra/docs/ReleaseNotes.rst

  Log Message:
  -----------
  [clangd] [C++20] [Modules] Introduce initial support for C++20 Modules (#66462)

Alternatives to https://reviews.llvm.org/D153114.

Try to address https://github.com/clangd/clangd/issues/1293.

See the links for design ideas and the consensus so far. We want to have
some initial support in clang18.

This is the initial support for C++20 Modules in clangd.
As suggested by sammccall in https://reviews.llvm.org/D153114,
we should minimize the scope of the initial patch to make it easier
 to review and understand so that every one are in the same page:

> Don't attempt any cross-file or cross-version coordination: i.e. don't
    > try to reuse BMIs between different files, don't try to reuse BMIs
> between (preamble) reparses of the same file, don't try to persist the
> module graph. Instead, when building a preamble, synchronously scan
> for the module graph, build the required PCMs on the single preamble
> thread with filenames private to that preamble, and then proceed to
    > build the preamble.

This patch reflects the above opinions.

# Testing in real-world project

I tested this with a modularized library:
https://github.com/alibaba/async_simple/tree/CXX20Modules. This library
has 3 modules (async_simple, std and asio) and 65 module units. (Note
that a module consists of multiple module units). Both `std` module and
`asio` module have 100k+ lines of code (maybe more, I didn't count). And
async_simple itself has 8k lines of code. This is the scale of the
project.

The result shows that it works pretty well, ..., well, except I need to
wait roughly 10s after opening/editing any file. And this falls in our
expectations. We know it is hard to make it perfect in the first move.

# What this patch does in detail

- Introduced an option `--experimental-modules-support` for the support
for C++20 Modules. So that no matter how bad this is, it wouldn't affect
current users. Following off the page, we'll assume the option is
enabled.
- Introduced two classes `ModuleFilesInfo` and
`ModuleDependencyScanner`. Now `ModuleDependencyScanner` is only used by
`ModuleFilesInfo`.
- The class `ModuleFilesInfo` records the built module files for
specific single source file. The module files can only be built by the
static member function `ModuleFilesInfo::buildModuleFilesInfoFor(PathRef
File, ...)`.
- The class `PreambleData` adds a new member variable with type
`ModuleFilesInfo`. This refers to the needed module files for the
current file. It means the module files info is part of the preamble,
which is suggested in the first patch too.
- In `isPreambleCompatible()`, we add a call to
`ModuleFilesInfo::CanReuse()` to check if the built module files are
still up to date.
- When we build the AST for a source file, we will load the built module
files from ModuleFilesInfo.

# What we need to do next

Let's split the TODOs into clang part and clangd part to make things
more clear.

The TODOs in the clangd part include:
1. Enable reusing module files across source files. The may require us
to bring a ModulesManager like thing which need to handle `scheduling`,
`the possibility of BMI version conflicts` and `various events that can
invalidate the module graph`.
2. Get a more efficient method to get the `<module-name> ->
<module-unit-source>` map. Currently we always scan the whole project
during `ModuleFilesInfo::buildModuleFilesInfoFor(PathRef File, ...)`.
This is clearly inefficient even if the scanning process is pretty fast.
I think the potential solutions include:
- Make a global scanner to monitor the state of every source file like I
did in the first patch. The pain point is that we need to take care of
the data races.
- Ask the build systems to provide the map just like we ask them to
provide the compilation database.
3. Persist the module files. So that we can reuse module files across
clangd invocations or even across clangd instances.

TODOs in the clang part include:
1. Clang should offer an option/mode to skip writing/reading the bodies
of the functions. Or even if we can requrie the parser to skip parsing
the function bodies.

And it looks like we can say the support for C++20 Modules is initially
workable after we made (1) and (2) (or even without (2)).


  Commit: 3e47f6ba4a2aae7a8414dfeafa21d8d79e806c43
      https://github.com/llvm/llvm-project/commit/3e47f6ba4a2aae7a8414dfeafa21d8d79e806c43
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/lib/Target/ARM/ARMFrameLowering.cpp
    M llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp
    M llvm/lib/Target/Hexagon/HexagonBitSimplify.cpp
    M llvm/lib/Target/Hexagon/HexagonGenInsert.cpp
    M llvm/lib/Target/Mips/MipsFastISel.cpp
    M llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp
    M llvm/lib/Target/PowerPC/PPCEarlyReturn.cpp
    M llvm/lib/Target/PowerPC/PPCFastISel.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyRegColoring.cpp
    M llvm/lib/Target/XCore/XCoreLowerThreadLocal.cpp

  Log Message:
  -----------
  Rapply "[Target] Use range-based for loops (NFC) (#98844)"

This iteration drops hunks where the loop body adds more elements.


  Commit: ad154281230d83ee551e12d5be48bb956ef47ed3
      https://github.com/llvm/llvm-project/commit/ad154281230d83ee551e12d5be48bb956ef47ed3
  Author: David Tenty <daltenty at ibm.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M libcxx/test/std/input.output/iostream.format/std.manip/setfill_wchar_max.pass.cpp

  Log Message:
  -----------
  [NFC][libc++][test] loosen XFAIL condition for setfill_wchar_max.pass.cpp

So we can also match aarch64 triples which have four components instead of three when disabling the test, which the case on some buildbots.

Follow on to #89305


  Commit: edfe25064e13c9cabf1cf3398f7760bf0991ae3e
      https://github.com/llvm/llvm-project/commit/edfe25064e13c9cabf1cf3398f7760bf0991ae3e
  Author: Teresa Johnson <tejohnson at google.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp

  Log Message:
  -----------
  [MemProf] Consolidate increments in callee matching code (#99385)

To facilitate some follow on changes, consolidate the incrementing of
the edge iterator used during callee matching to the for loop statement.
This requires an additional adjustment in the case of tail call
handling.


  Commit: c184b94ff6546c8ba8ac54b5127189427567978f
      https://github.com/llvm/llvm-project/commit/c184b94ff6546c8ba8ac54b5127189427567978f
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M clang/lib/Serialization/ASTReaderDecl.cpp
    M clang/lib/Serialization/ASTWriter.cpp
    M clang/lib/Serialization/ASTWriterDecl.cpp

  Log Message:
  -----------
  [C++20] [Modules] Write ODRHash for decls in GMF

Previously, we skipped calculating ODRHash for decls in GMF when writing
them to .pcm files as an optimization. But actually, it is not
true that this will be a pure optimization. Whether or not it is
beneficial depends on the use cases. For example, if we're writing a
function `a` in module and there are 10 consumers of `a` in other TUs,
then the other TUs will pay for the cost to calculate the ODR hash for
`a` ten times. Then this optimization doesn't work. However, if all the
consumers of the module didn't touch `a`, then we can save the cost to
calculate the ODR hash of `a` for 1 times.

And the assumption to make it was: generally, the consumers of a module
may only consume a small part of the imported module. This is the reason
why we tried to load declarations, types and identifiers lazily. Then it
looks good to do the similar thing for calculating ODR hashs.

It works fine for a long time, until we started to look into the support
of modules in clangd. Then we meet multiple issue reports complaining
we're calculating ODR hash in the wrong place. To workaround these issue
reports, I decided to always write the ODRhash for decls in GMF. In my
local test, I only observed less than 1% compile time regression after
doing this. So it should be fine.


  Commit: 464d321ee8dde1eaf14b5537eaf030e6df513849
      https://github.com/llvm/llvm-project/commit/464d321ee8dde1eaf14b5537eaf030e6df513849
  Author: Kareem Ergawy <kareem.ergawy at amd.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M flang/lib/Optimizer/Transforms/StackArrays.cpp
    A flang/test/Transforms/stack-arrays-hlfir.f90
    M flang/test/Transforms/stack-arrays.fir

  Log Message:
  -----------
  [flang][stack-arrays] Extend pass to work on declare ops and within omp regions (#98810)

Extends the stack-arrays pass to support `fir.declare` ops. Before that,
we did not recognize malloc-free pairs for which `fir.declare` is used
to declare the allocated entity. This is because the `free` op was
invoked on the result of the `fir.declare` op and did not directly use
the allocated memory SSA value.

This also extends the pass to collect the analysis results within OpenMP
regions.


  Commit: 5338bd3c8ac5e313a09fffbe84aacc51a16e17f8
      https://github.com/llvm/llvm-project/commit/5338bd3c8ac5e313a09fffbe84aacc51a16e17f8
  Author: vporpo <vporpodas at google.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/docs/SandboxIR.md
    M llvm/include/llvm/SandboxIR/SandboxIR.h
    A llvm/include/llvm/SandboxIR/Tracker.h
    M llvm/include/llvm/SandboxIR/Use.h
    M llvm/lib/SandboxIR/CMakeLists.txt
    M llvm/lib/SandboxIR/SandboxIR.cpp
    A llvm/lib/SandboxIR/Tracker.cpp
    M llvm/unittests/SandboxIR/CMakeLists.txt
    A llvm/unittests/SandboxIR/TrackerTest.cpp

  Log Message:
  -----------
  [SandboxIR] IR Tracker (#99238)

This is the first patch in a series of patches for the IR change
tracking component of SandboxIR.
The tracker collects changes in a vector of `IRChangeBase` objects and
provides a `save()`/`accept()`/`revert()` API.

Each type of IR changing event is captured by a dedicated subclass of
`IRChangeBase`. This patch implements only one of them, that for
updating a `sandboxir::Use` source value, named `UseSet`.


  Commit: 27ee33d1368b9772f75285932c00479a0fae82ee
      https://github.com/llvm/llvm-project/commit/27ee33d1368b9772f75285932c00479a0fae82ee
  Author: Hsiangkai Wang <hsiangkai.wang at arm.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
    M mlir/lib/Dialect/Linalg/Transforms/WinogradConv2D.cpp
    A mlir/test/Dialect/Linalg/winograd-conv2d-rewrite.mlir
    M mlir/test/lib/Dialect/Linalg/TestLinalgTransforms.cpp

  Log Message:
  -----------
  [mlir][linalg] Decompose winograd operators (#96183)

Convert Linalg winograd_filter_transform, winograd_input_transform, and
winograd_output_transform into nested loops with matrix multiplication
with constant transform matrices.

Support several configurations of Winograd Conv2D, including F(2, 3),
F(4, 3) and F(2, 5). These configurations show that the implementation
can support different kernel size (3 and 5) and different output size
(2 and 4). Besides symetric kernel size 3x3 and 5x5, this patch also
supports 1x3, 3x1, 1x5, and 5x1 kernels.

The implementation is based on the paper, Fast Algorithm for
Convolutional Neural Networks. (https://arxiv.org/abs/1509.09308)

Reviewers: ftynse, Max191, GeorgeARM, nicolasvasilache, MaheshRavishankar, dcaballe, rengolin

Reviewed By: ftynse, Max191

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


  Commit: 4782a4ab0ad43b2f47f20afbe025b841d7f0ac04
      https://github.com/llvm/llvm-project/commit/4782a4ab0ad43b2f47f20afbe025b841d7f0ac04
  Author: Joachim <jenke at itc.rwth-aachen.de>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M clang/lib/CodeGen/CGOpenMPRuntime.cpp
    M clang/test/OpenMP/depend_iterator_bug.c
    M clang/test/OpenMP/task_codegen.c

  Log Message:
  -----------
  [OpenMP] Fix calculation of dependencies for multi-dimensional iteration space (#99347)

The expectation for multiple iterators used in a single depend clause
(`depend(iterator(i=0:5,j=0:5), in:x[i][j])`) is that the iterator space
is the product of the iteration vectors (25 in that case). The current
codeGen only works correctly, if `numIterators() = 1`. For more
iterators, the execution results in runtime assertions or segfaults.
The modified codeGen first calculates the iteration space, then
multiplies to the number of dependencies in the depend clause and
finally adds to the total number of iterator dependencies.


  Commit: 810adbaa0236eed10ecfd9f96837b6d23d308a7d
      https://github.com/llvm/llvm-project/commit/810adbaa0236eed10ecfd9f96837b6d23d308a7d
  Author: Tristan Ross <rosscomputerguy at protonmail.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCTargetDesc.h

  Log Message:
  -----------
  [RISCV] Remove unused include in RISCVMCTargetDesc.h (#98790)

Goes in hand with #97130, split out to figure out CI fails. Should just
build whatever subprojects utilize the `RISCVMCTargetDesc.h` header and
it should build & test just like normal.

Co-authored-by: pca006132 <john.lck40 at gmail.com>


  Commit: fbf8b82cd02818c0888805bb39abbf550333bea6
      https://github.com/llvm/llvm-project/commit/fbf8b82cd02818c0888805bb39abbf550333bea6
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M clang/lib/AST/Interp/InterpBlock.cpp
    M clang/lib/AST/Interp/InterpState.cpp

  Log Message:
  -----------
  [clang][Interp][NFC] Be more cautious about Block initialization state

... when moving a Block to a DeadBlock. Only invoke the MoveFn if the
old block was initialized at all.


  Commit: 0e986e395f9cd759b859ba0c934c0d73de4554c8
      https://github.com/llvm/llvm-project/commit/0e986e395f9cd759b859ba0c934c0d73de4554c8
  Author: Aiden Grossman <aidengrossman at google.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/utils/mlgo-utils/pyproject.toml

  Log Message:
  -----------
  [MLGO] Fix MLGO executable scripts

The MLGO executable scripts were previously set up incorrectly with the
entrypoints. This patch corrects the entrypoints so that the scripts
work as expected rather than throwing import errors in the wrapper.


  Commit: 1e6672af2497042d5dad0236c2ad9e61f879ac07
      https://github.com/llvm/llvm-project/commit/1e6672af2497042d5dad0236c2ad9e61f879ac07
  Author: serge-sans-paille <sguelton at mozilla.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M flang/runtime/command.cpp

  Log Message:
  -----------
  [Flang][Runtime] Simplify StringLength implementation

This implementation relies on arithmetic conversion, let's see what
happens when we do

    std::size_t length{std::strlen(string)};
    if (length <= std::numeric_limits<std::int64_t>::max())
        return static_cast<std::int64_t>(length);

1) if size_t == uint32_t (or lower), then the comparison operator
   invokes integral promotion to uint64_t, the comparison happens, it's
   fine.

2) if size_t == uint64_t, then the comparison is done between unsigned
   types, which implies a conversion of
   std::numeric_limits<std::int64_t>::max() to uint64_t, which happens
   without accuracy loss, fine

3) if size_t == uint128_t (or higher), then we invoke integral promotion
   of std::int64_t, it's also fine.

So this snippet has the same behavior as the existing one, while being
easier to read.


  Commit: f36331770267501e157ac34afc3ca7d7a0bfb52c
      https://github.com/llvm/llvm-project/commit/f36331770267501e157ac34afc3ca7d7a0bfb52c
  Author: Alexander Pivovarov <pivovaa at amazon.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M clang/include/clang/AST/Stmt.h
    M clang/lib/AST/MicrosoftMangle.cpp
    M llvm/include/llvm/ADT/APFloat.h
    M llvm/lib/Support/APFloat.cpp
    M llvm/unittests/ADT/APFloatTest.cpp

  Log Message:
  -----------
  [APFloat] Add support for f8E4M3 IEEE 754 type (#97179)

This PR adds `f8E4M3` type to APFloat.

`f8E4M3` type  follows IEEE 754 convention

```c
f8E4M3 (IEEE 754)
- Exponent bias: 7
- Maximum stored exponent value: 14 (binary 1110)
- Maximum unbiased exponent value: 14 - 7 = 7
- Minimum stored exponent value: 1 (binary 0001)
- Minimum unbiased exponent value: 1 − 7 = −6
- Precision specifies the total number of bits used for the significand (mantisa), 
    including implicit leading integer bit = 3 + 1 = 4
- Follows IEEE 754 conventions for representation of special values
- Has Positive and Negative zero
- Has Positive and Negative infinity
- Has NaNs

Additional details:
- Max exp (unbiased): 7
- Min exp (unbiased): -6
- Infinities (+/-): S.1111.000
- Zeros (+/-): S.0000.000
- NaNs: S.1111.{001, 010, 011, 100, 101, 110, 111}
- Max normal number: S.1110.111 = +/-2^(7) x (1 + 0.875) = +/-240
- Min normal number: S.0001.000 = +/-2^(-6)
- Max subnormal number: S.0000.111 = +/-2^(-6) x 0.875 = +/-2^(-9) x 7
- Min subnormal number: S.0000.001 = +/-2^(-6) x 0.125 = +/-2^(-9)
```

Related PRs:
- [PR-97118](https://github.com/llvm/llvm-project/pull/97118) Add f8E4M3
IEEE 754 type to mlir


  Commit: 7b08c2774ca7350b372f70f63135eacc04d739c5
      https://github.com/llvm/llvm-project/commit/7b08c2774ca7350b372f70f63135eacc04d739c5
  Author: Adrian Kuegel <akuegel at google.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

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

  Log Message:
  -----------
  [mlir][Linalg] Remove unused header include.

There seems to be no direct usage of any tosa utils.


  Commit: 0ce3ea1bfffcbd62195cf07e34477cc7cc5c5009
      https://github.com/llvm/llvm-project/commit/0ce3ea1bfffcbd62195cf07e34477cc7cc5c5009
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.h
    M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
    M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
    M llvm/lib/Target/AMDGPU/SIInstructions.td

  Log Message:
  -----------
  [AMDGPU] Simplify selection of llvm.amdgcn.inverse.ballot. NFCI. (#99345)


  Commit: 14c323cfd66454c65324c4d5b9d9b6a9c5651eca
      https://github.com/llvm/llvm-project/commit/14c323cfd66454c65324c4d5b9d9b6a9c5651eca
  Author: Dominik Adamski <dominik.adamski at amd.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M clang/lib/CodeGen/CodeGenModule.h
    M clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp
    M clang/test/Driver/amdgpu-openmp-toolchain.c

  Log Message:
  -----------
  [OpenMP][AMDGPU] Do not attach -fcuda-is-device (#99002)

-fcuda-is-device flag is not used for OpenMP offloading for AMD GPUs and
it does not need to be added as clang cc1 option for OpenMP code.

This PR has the same functionality as
https://github.com/llvm/llvm-project/pull/96909 but it doesn't introduce
regression for virtual function support.


  Commit: 7aabdb8776eb11b90d43162254db47df46806ec9
      https://github.com/llvm/llvm-project/commit/7aabdb8776eb11b90d43162254db47df46806ec9
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

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

  Log Message:
  -----------
  [clang][Interp][NFC] Protect ByteCodeEmitter against unfinished fns

This is similar to a check in TextNodeDumper.cpp. Without this, we will
crash later when trying to iterate over FuncDecl->params().


  Commit: 4b9bcabdf05346fd72db0d1ad88faa9b969a8f13
      https://github.com/llvm/llvm-project/commit/4b9bcabdf05346fd72db0d1ad88faa9b969a8f13
  Author: David Green <david.green at arm.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
    M llvm/lib/Target/AArch64/AArch64FrameLowering.h
    M llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h
    A llvm/test/CodeGen/AArch64/stack-hazard.ll

  Log Message:
  -----------
  [AArch64] Add streaming-mode stack hazards. (#98956)

Under some SME contexts, a coprocessor with its own separate cache will
be used for FPR operations. This can create hazards if the CPU and the
SME unit try to access the same area of memory, including if the access
is to an area of the stack.

To try to alleviate that, this patch attempts to introduce extra padding
into the stack frame between FP and GPR accesses, controlled by the
StackHazardSize option. Without changing the layout of the stack frame,
a stack object of the right size is added between GPR and FPR CSRs.
Another is added to the stack objects section, and stack objects are
sorted so that FPR > Hazard padding slot > GPRs (where possible).

Unfortunately some things are not handled well (VLA area, FPR arguments
on the stack, object with both GPR and FPR accesses), but if those are
controlled by the user then the entire stack frame becomes GPR at the
start/end with FPR in the middle, surrounded by Hazard padding. This can
greatly help reduce something that can be difficult for the user to
control themselves.

The current implementation is opt-in through an
-aarch64-stack-hazard-size flag, and should have no effect if the option
is unset. In the long run the implementation might change (for example
using more base pointers to separate in more cases, re-enabling ldp/stp
using an extra register, etc), but this gets at least something for
people to use in llvm-19 if they need it. The only change whilst the
option is unset will be a fix for making sure the stack increment is
added at the right place when it cannot be converted to postinc
(++MBBI). I believe without extra padding that can not normally be
reached.


  Commit: 8afb395aeef5335554c623f92f48cbdc9ffe927d
      https://github.com/llvm/llvm-project/commit/8afb395aeef5335554c623f92f48cbdc9ffe927d
  Author: Ilya Leoshkevich <iii at linux.ibm.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    R compiler-rt/test/sanitizer_common/TestCases/Posix/sanitizer_bad_report_path_test.cpp
    M compiler-rt/test/sanitizer_common/TestCases/Posix/sanitizer_set_report_path_test.cpp

  Log Message:
  -----------
  [sanitizer] Fix running sanitizer_bad_report_path_test on Linux as root (#97732)

Running tests as root is not the greatest idea, however, there is one
valid use case - running them in a container in order to verify LLVM on
different distros. There is no reason to configure unprivileged users
in a container, so one works as root.
    
sanitizer_bad_report_path_test assumes that creating a file in a
non-writable directory would fail, which is not the always case. For
example, when we are on Linux and CAP_DAC_OVERRIDE, which root has, is
in effect. Therefore, one solution is to drop it. However, that would
be Linux-specific.
    
Instead, use argv[0] as if it were a directory. mkdir() on top of a
file should be prohibited by all supported Posix operating systems.
Combine this with a partial revert of commit f4214e1469ad ("[sanitizer]
Skip test on Android where chmod is not working"), since we shouldn't
need to exclude Android anymore.


  Commit: a19e5aedd9b15ecf0b05bafb7d20e13c952b4531
      https://github.com/llvm/llvm-project/commit/a19e5aedd9b15ecf0b05bafb7d20e13c952b4531
  Author: jeanPerier <jperier at nvidia.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M flang/lib/Lower/ConvertCall.cpp
    M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
    M flang/test/Lower/Intrinsics/second.f90

  Log Message:
  -----------
  [flang] load SECOND result in genSecond (#99342)

Until genSecond, all intrinsic `genXXX` returning scalar intrinsic
(except NULL) were returning them as value.

The code calling genIntrinsicCall is using that assumption when
generation the asExprOp because hflir.expr<> of scalar are badly
supported in tools (I should likely just forbid them all together), the
type is meant for "non trivial" values: arrays, character, and derived
type. For instance, the added tests crashed with error: `'arith.subf' op
operand #0 must be floating-point-like, but got '!hlfir.expr<f32>'`

Load the result in genSecond and add an assert after genIntrinsicCall to
better enforce this.


  Commit: e93df78bd46b585c0bdabdbdc95410e4c08b9d38
      https://github.com/llvm/llvm-project/commit/e93df78bd46b585c0bdabdbdc95410e4c08b9d38
  Author: Pavel Labath <pavel at labath.sk>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h
    M llvm/lib/DebugInfo/DWARF/DWARFDie.cpp
    M llvm/lib/DebugInfo/DWARF/DWARFTypePrinter.cpp
    M llvm/test/tools/llvm-dwarfdump/X86/prettyprint_type_units.s

  Log Message:
  -----------
  [llvm/DWARF] Recursively resolve DW_AT_signature references (#97423)

findRecursively follows DW_AT_specification and DW_AT_abstract_origin
references, but not DW_AT_signature. As far as I can tell, there is no
fundamental difference between these attributes that would make this
behavior desirable, and this just seems like a consequence of the fact
that this attribute is newer. This patch aims to change that.

The motivation is some code in lldb, which assumes that it can construct
a qualified name of a type by just walking the parent chain and looking
at the name attribute. This works for "regular" debug info, even when
some of the DIEs are just forward declarations, but it breaks in the
presence of type units, because of the need to explicitly resolve the
signature reference.

While LLDB does not use the llvm's DWARFDie class (yet?), this seems
like a very important change in the overall API, and any divergence here
would complicate eventual reunification, which is why I am making the
change in the llvm API first. However, putting lldb aside, I think this
change is beneficial in llvm on its own, as it allows us to remove the
explicit DW_AT_signature resolution in the DWARFTypePrinter.


  Commit: 09cbb45edd149d30766c87be4628e4df13f3496d
      https://github.com/llvm/llvm-project/commit/09cbb45edd149d30766c87be4628e4df13f3496d
  Author: Pavel Labath <pavel at labath.sk>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M bolt/include/bolt/Core/DIEBuilder.h
    M bolt/lib/Core/DIEBuilder.cpp

  Log Message:
  -----------
  [BOLT][DWARF][NFC] A better DIEBuilder for the llvm API change in #98905 (#99324)

The caller (cloneAttribute) already switches on the reference type. By
aligning the cases with the retrieval functions, we can avoid branching
twice.


  Commit: 2ef7cbf71c98246d6f3a9c63dea75b76c7b5e928
      https://github.com/llvm/llvm-project/commit/2ef7cbf71c98246d6f3a9c63dea75b76c7b5e928
  Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M clang/docs/CommandGuide/clang.rst
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/Basic/DiagnosticDriverKinds.td
    M clang/include/clang/Basic/DiagnosticGroups.td
    M clang/include/clang/Driver/Options.td
    M clang/lib/Driver/ToolChains/Clang.cpp
    M clang/test/Driver/Ofast.c

  Log Message:
  -----------
  [clang] Add deprecation warning for `-Ofast` driver option (#98736)

This patch implements consensus on the corresponding RFC documented
here: https://discourse.llvm.org/t/rfc-deprecate-ofast/78687/72
Specifically, I added a deprecation warning for `-Ofast`, that suggests
to use `-O3` or `-O3` with `-ffast-math`, and a new diagnostic group for
aforementioned warning.
Deprecation period is going to be lengthy, so I hope this PR can be
merged in time for Clang 19.


  Commit: cf66cec7c4481ff39525232d64a4d5215cca3ac5
      https://github.com/llvm/llvm-project/commit/cf66cec7c4481ff39525232d64a4d5215cca3ac5
  Author: goldsteinn <35538541+goldsteinn at users.noreply.github.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

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

  Log Message:
  -----------
  Recommit "[PatternMatch] Fix issue of stale reference in new `m_{I,F,}Cmp` matchers" (3rd Try) (#99292)

The first fix forgot to fixup the commutative matchers...


  Commit: 94cd18b7fcf239b85698ad70f145ca5fa5edd516
      https://github.com/llvm/llvm-project/commit/94cd18b7fcf239b85698ad70f145ca5fa5edd516
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/test/Transforms/CorrelatedValuePropagation/vectors.ll

  Log Message:
  -----------
  [CVP] Add test for phi merging of vectors (NFC)


  Commit: 3eba28d1fd3347a1658f68b63285148b0bb25fab
      https://github.com/llvm/llvm-project/commit/3eba28d1fd3347a1658f68b63285148b0bb25fab
  Author: Haojian Wu <hokein.wu at gmail.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/Basic/DiagnosticGroups.td
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/lib/Sema/CheckExprLifetime.cpp
    M clang/lib/Sema/SemaOverload.cpp
    M clang/test/Sema/warn-lifetime-analysis-nocfg-disabled.cpp
    M clang/test/Sema/warn-lifetime-analysis-nocfg.cpp
    M clang/test/SemaCXX/warn-dangling-local.cpp

  Log Message:
  -----------
  [clang] Extend lifetime analysis to support assignments for pointer-like objects. (#99032)

This is a follow-up patch to #96475 to detect dangling assignments for
C++ pointer-like objects (classes annotated with the
`[[gsl::Pointer]]`). Fixes #63310.

Similar to the behavior for built-in pointer types, if a temporary owner
(`[[gsl::Owner]]`) object is assigned to a pointer-like class object,
and this temporary object is destroyed at the end of the full assignment
expression, the assignee pointer is considered dangling. In such cases,
clang will emit a warning:

```
/tmp/t.cpp:7:20: warning: object backing the pointer my_string_view will be destroyed at the end of the full-expression [-Wdangling-assignment-gsl]
    7 |   my_string_view = CreateString();
      |                    ^~~~~~~~~~~~~~
1 warning generated.
```

This new warning is `-Wdangling-assignment-gsl`. It is initially
disabled, but I intend to enable it by default in clang 20.

I have initially tested this patch on our internal codebase, and it has
identified many use-after-free bugs, primarily related to `string_view`.


  Commit: 26af44b3985c762b2cbaf348f8012a30af09151f
      https://github.com/llvm/llvm-project/commit/26af44b3985c762b2cbaf348f8012a30af09151f
  Author: Sudharsan Veeravalli <quic_svs at quicinc.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/lib/Transforms/Utils/SCCPSolver.cpp
    A llvm/test/Transforms/SCCP/preserving-debugloc-signedinst-branch-feasible-succ.ll

  Log Message:
  -----------
  [DebugInfo][SCCPSolver] Fix missing debug locations (#98876)

Fixes #98875


  Commit: 57539418bae45e3c972e8f4f0a88577f807e8697
      https://github.com/llvm/llvm-project/commit/57539418bae45e3c972e8f4f0a88577f807e8697
  Author: Orlando Cazalet-Hyams <orlando.hyams at sony.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/lib/Transforms/Scalar/SROA.cpp
    M llvm/test/DebugInfo/Generic/assignment-tracking/sroa/var-sized-fragment.ll
    A llvm/test/DebugInfo/Generic/sroa-alloca-offset.ll

  Log Message:
  -----------
  [SROA] Fix debug locations for variables with non-zero offsets  (#97750)

Fixes issue #61981 by adjusting variable location offsets (in the DIExpression)
when splitting allocas.

Patch [4/4] to fix structured bindings in SROA.

NOTE: There's still a bug in mem2reg which generates incorrect locations in some
situations: if the variable fragment has an offset into the new (split) alloca,
mem2reg will fail to convert that into a bit shift (the location contains a
garbage offset). That's not addressed here.

insertNewDbgInst - Now takes the address-expression and FragmentInfo as
  separate parameters because unlike dbg_declares dbg_assigns want those to go
  to different places. dbg_assign records put the variable fragment info in the
  value expression only (whereas dbg_declare has only one expression so puts it
  there - ideally this information wouldn't live in DIExpression, but that's
  another issue).

MigrateOne - Modified to correctly compute the necessary offsets and fragment
  adjustments. The previous implementation produced bogus locations for variables
  with non-zero offsets. The changes replace most of the body of this lambda, so
  it might be easier to review in a split-diff view and focus on the change as a
  whole than to compare it to the old implementation.

  This uses calculateFragmentIntersect and extractLeadingOffset added in previous
  patches in this series, and createOrReplaceFragment described below.

createOrReplaceFragment - Similar to DIExpression::createFragmentExpression
  except for 3 important distinctions:

    1. The new fragment isn't relative to an existing fragment.
    2. There are no checks on the the operation types because it is assumed
       the location this expression is computing is not implicit (i.e., it's
       always safe to create a fragment because arithmetic operations apply
       to the address computation, not to an implicit value computation).
    3. Existing extract_bits are modified independetly of fragment changes
       using \p BitExtractOffset. A change to the fragment offset or size
       may affect a bit extract. But a bit extract offset can change
       independently of the fragment dimensions.

  Returns the new expression, or nullptr if one couldn't be created.  Ideally
  this is only used to signal that a bit-extract has become zero-sized (and thus
  the new debug record has no size and can be dropped), however, it fails for
  other reasons too - see the FIXME below.

  FIXME: To keep the scope of this change focused on non-bitfield structured
  bindings the function bails in situations that
  DIExpression::createFragmentExpression fails. E.g. when fragment and bit
  extract sizes differ. These limitations can be removed in the future.


  Commit: cbd255942b52c3576aa0dca444811512fff43714
      https://github.com/llvm/llvm-project/commit/cbd255942b52c3576aa0dca444811512fff43714
  Author: dlav-sc <daniil.avdeev at syntacore.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M lldb/packages/Python/lldbsuite/test/lldbplatformutil.py

  Log Message:
  -----------
  [lldb] add RISCV target specific info in API tests (#99039)

Add information about RISCV first register in python API testsuite, that
is used to check register readability in tests.

Fixed tests on RISCV target:

TestBreakpointByFileColonLine.BreakpointByLineAndColumnTestCase
TestAddressBreakpoints.AddressBreakpointTestCase
TestBreakpointAutoContinue.BreakpointAutoContinue
TestInterruptBacktrace.TestInterruptingBacktrace
TestBadAddressBreakpoints.BadAddressBreakpointTestCase
TestScriptedResolver.TestScriptedResolver
TestStopHookScripted.TestStopHooks
TestBreakpointConditions.BreakpointConditionsTestCase
TestLocalVariables.LocalVariablesTestCase
TestFindLineEntry.FindLineEntry
TestScriptedResolver.TestScriptedResolver
TestInlineSourceFiles.InlineSourceFilesTestCase
TestModuleAndSection.ModuleAndSectionAPIsTestCase
TestFrameVar.TestFrameVar
TestInferiorAssert.AssertingInferiorTestCase
TestInferiorCrashing.CrashingInferiorTestCase
TestInferiorCrashingStep.CrashingInferiorStepTestCase
TestRegistersIterator.RegistersIteratorTestCase
TestCoroutineHandle.TestCoroutineHandle
TestWithLimitDebugInfo.TestWithLimitDebugInfo
TestLLDBIterator.LLDBIteratorTestCase
TestMemoryWrite.MemoryWriteTestCase
TestNestedTemplate.NestedTemplateTestCase
TestParrayVrsCharArrayChild.TestParrayVrsCharArrayChild
TestRecursiveInferior.CrashingRecursiveInferiorTestCase
TestRecursiveInferiorStep.CrashingRecursiveInferiorStepTestCase
TestRunLocker.TestRunLocker
TestSampleTest.RenameThisSampleTestTestCase
TestUniqueTypes3.UniqueTypesTestCase3
TestPrintStackTraces.ThreadsStackTracesTestCase
TestUnicodeSymbols.TestUnicodeSymbols
TestUnusedInlinedParameters.TestUnusedInlinedParameters
TestValueVarUpdate.ValueVarUpdateTestCase
TestPtrRef2Typedef.PtrRef2TypedefTestCase
TestDataFormatterStdIterator.StdIteratorDataFormatterTestCase
TestDataFormatterStdString.StdStringDataFormatterTestCase
TestDataFormatterStdVBool.StdVBoolDataFormatterTestCase


  Commit: 26cb88e3210af24942310a192431c8d7c3544e21
      https://github.com/llvm/llvm-project/commit/26cb88e3210af24942310a192431c8d7c3544e21
  Author: Pavel Labath <pavel at labath.sk>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h
    M llvm/lib/DebugInfo/DWARF/DWARFDie.cpp
    M llvm/lib/DebugInfo/DWARF/DWARFTypePrinter.cpp
    M llvm/test/tools/llvm-dwarfdump/X86/prettyprint_type_units.s

  Log Message:
  -----------
  Revert "[llvm/DWARF] Recursively resolve DW_AT_signature references" (#99444)

Reverts llvm/llvm-project#97423 due to a failure in the
cross-project-tests.


  Commit: 80865c01e1b8d3a6bea308fda7bbc53047dcc2e7
      https://github.com/llvm/llvm-project/commit/80865c01e1b8d3a6bea308fda7bbc53047dcc2e7
  Author: Michael Kruse <llvm-project at meinersbur.de>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M clang/include/clang-c/Index.h
    M clang/include/clang/AST/RecursiveASTVisitor.h
    M clang/include/clang/AST/StmtOpenMP.h
    M clang/include/clang/Basic/StmtNodes.td
    M clang/include/clang/Sema/SemaOpenMP.h
    M clang/include/clang/Serialization/ASTBitCodes.h
    M clang/lib/AST/StmtOpenMP.cpp
    M clang/lib/AST/StmtPrinter.cpp
    M clang/lib/AST/StmtProfile.cpp
    M clang/lib/Basic/OpenMPKinds.cpp
    M clang/lib/CodeGen/CGStmt.cpp
    M clang/lib/CodeGen/CGStmtOpenMP.cpp
    M clang/lib/CodeGen/CodeGenFunction.h
    M clang/lib/Parse/ParseOpenMP.cpp
    M clang/lib/Sema/SemaExceptionSpec.cpp
    M clang/lib/Sema/SemaOpenMP.cpp
    M clang/lib/Sema/TreeTransform.h
    M clang/lib/Serialization/ASTReaderStmt.cpp
    M clang/lib/Serialization/ASTWriterStmt.cpp
    A clang/test/OpenMP/reverse_ast_print.cpp
    A clang/test/OpenMP/reverse_codegen.cpp
    A clang/test/OpenMP/reverse_messages.cpp
    M clang/tools/libclang/CIndex.cpp
    M clang/tools/libclang/CXCursor.cpp
    M llvm/include/llvm/Frontend/OpenMP/OMP.td
    A openmp/runtime/test/transform/reverse/foreach.cpp
    A openmp/runtime/test/transform/reverse/intfor.c
    A openmp/runtime/test/transform/reverse/iterfor.cpp
    A openmp/runtime/test/transform/reverse/parallel-wsloop-collapse-foreach.cpp
    A openmp/runtime/test/transform/reverse/parallel-wsloop-collapse-intfor.cpp

  Log Message:
  -----------
  [Clang][OpenMP] Add reverse directive (#92916)

Add the reverse directive which will be introduced in the upcoming
OpenMP 6.0 specification. A preview has been published in [Technical
Report 12](https://www.openmp.org/wp-content/uploads/openmp-TR12.pdf).

---------

Co-authored-by: Alexey Bataev <a.bataev at outlook.com>


  Commit: 1dfbd07255f50ab3920d397dda5f8f9c05020f76
      https://github.com/llvm/llvm-project/commit/1dfbd07255f50ab3920d397dda5f8f9c05020f76
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/test/Analysis/ValueTracking/known-bits.ll
    M llvm/test/Analysis/ValueTracking/known-fpclass.ll
    M llvm/test/Analysis/ValueTracking/known-non-zero.ll

  Log Message:
  -----------
  [ValueTracking] Add tests for `llvm.vector.reverse` with `DemandedElts`; NFC


  Commit: 6ef970b65f93b0f7fbcd8ffc44fb9b9af58cc097
      https://github.com/llvm/llvm-project/commit/6ef970b65f93b0f7fbcd8ffc44fb9b9af58cc097
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/test/Analysis/ValueTracking/known-bits.ll

  Log Message:
  -----------
  [ValueTracking] Consistently propagate `DemandedElts` is `computeKnownBits`


  Commit: 72ff0499bba72eecc1b3d19833027b6c04337041
      https://github.com/llvm/llvm-project/commit/72ff0499bba72eecc1b3d19833027b6c04337041
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/test/Analysis/ValueTracking/known-non-zero.ll

  Log Message:
  -----------
  [ValueTracking] Consistently propagate `DemandedElts` is `isKnownNonZero`


  Commit: e8eeda8e4dc581ae744bc64a2683b5533fec8922
      https://github.com/llvm/llvm-project/commit/e8eeda8e4dc581ae744bc64a2683b5533fec8922
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

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

  Log Message:
  -----------
  [ValueTracking] Consistently propagate `DemandedElts` is `ComputeNumSignBits`


  Commit: 0589762e4e42a21796ca74eeb356cdfc50eaa232
      https://github.com/llvm/llvm-project/commit/0589762e4e42a21796ca74eeb356cdfc50eaa232
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/include/llvm/Analysis/ValueTracking.h
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/test/Analysis/ValueTracking/known-fpclass.ll

  Log Message:
  -----------
  [ValueTracking] Consistently propagate `DemandedElts` is `computeKnownFPClass`

Closes #99080


  Commit: c1263b326439dd623264d35ac5d006800092bac6
      https://github.com/llvm/llvm-project/commit/c1263b326439dd623264d35ac5d006800092bac6
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/test/Transforms/SCCP/phis.ll

  Log Message:
  -----------
  [SCCP] Add tests for vectors ins phis (NFC)


  Commit: 474d35f238d46010d12485734e62de91cb469404
      https://github.com/llvm/llvm-project/commit/474d35f238d46010d12485734e62de91cb469404
  Author: Rainer Orth <ro at gcc.gnu.org>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake
    M compiler-rt/lib/safestack/safestack.cpp
    M compiler-rt/lib/safestack/safestack_platform.h
    M compiler-rt/test/safestack/lit.cfg.py

  Log Message:
  -----------
  [safestack] Various Solaris fixes (#99290)

Even with the `-u __safestack_init` link order fixed on Solaris, there
are still several safestack test issues left:

- While 540fd42c755f20f7b79c6c79493ec36d8cb9b3d3 enabled safestack on
Solaris in the driver unconditionally, it ignored that Solaris also
exists on SPARC and forgot to enable SPARC support for the runtime lib.
This patch fixes that.

- The tests fail to link with undefined references to
`__sanitizer_internal_memset` etc in `safestack.cpp.o` and
`interception_linux.cpp.o`. These are from indirectly including
`sanitizer_redefine_builtins.h`. Instead of using the implementations
from `sanitizer_common` as was done in [[safestack] Various Solaris
fixes](https://github.com/llvm/llvm-project/pull/98469), this patch
disables the interception as discussed in [Revert "[safestack] Various
Solaris fixes"](https://github.com/llvm/llvm-project/pull/98541). A
similar issue affects 32-bit Linux/sparc where compiling `safestack.cpp`
with `-ftrivial-auto-var-init=pattern` causes the compiler to generate
calls to `memset` to initialize a `pthread_attr_t` which is larger than
can be handled inline. This is avoided by defining
`SANITIZER_COMMON_NO_REDEFINE_BUILTINS` in `safestack.cpp` and also
adding definitions of the interceptors that just forward to `libc` for
the benefit of `interception_linux.cpp`.

- The `pthread*.c` tests `FAIL` with

``` safestack CHECK failed:
/vol/llvm/src/llvm-project/local/compiler-rt/lib/safestack/safestack.cpp:227
size ```

The problem is that `pthread_attr_init` initializes the `stacksize`
attribute to 0, signifying the default. Unless explicitly overridded, it
stays that way. I think this is allowed by XPG7. Since safestack cannot
deal with this, I set `size` to the defaults documented in
`pthread_create(3C)`. Unfortunately, there's no macro for those values
outside of private `libc` headers.

- The Solaris `syscall` interface isn't stable. This is not just a
theoretical concern, but the syscalls have changed incompatibly several
times in the past. Therefore this patch switches the implementations of
`TgKill` (where `SYS_lwp_kill` doesn't exist on Solaris 11.4 anyway),
`Mmap`, `Munmap`, and `Mprotect` to the same `_REAL*` solution already
used in `sanitizer_solaris.cpp`.

With those changes, safestack compiles and all tests `PASS`, so the
tests are re-enabled for good.

Tested on `amd64-pc-solaris2.11`, `sparcv9-sun-solaris2.11`,
`x86_64-pc-linux-gnu`, and `sparc64-unknown-linux-gnu`.


  Commit: b1864a8d6ab8bfd346922e36d80e684a4eaf3248
      https://github.com/llvm/llvm-project/commit/b1864a8d6ab8bfd346922e36d80e684a4eaf3248
  Author: Daniel Bertalan <dani at danielbertalan.dev>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M lld/MachO/Config.h
    M lld/MachO/Driver.cpp
    M lld/MachO/Options.td
    M lld/test/MachO/link-search-at-rpath.s
    M lld/test/MachO/rpath.s

  Log Message:
  -----------
  [lld-macho] Ignore duplicate `-rpath` entries (#99289)

Starting with Xcode 16 (dyld-1122), Apple's binary utilities, e.g.
`dyld_info` (but not dyld itself), will refuse to load binaries built
against the macOS 15 SDK or newer that contain the same `LC_RPATH`
entry multiple times:

https://github.com/apple-oss-distributions/dyld/blob/rel/dyld-1122/mach_o/Policy.cpp#L246-L249

`ld-prime` deduplicates entries (regardless of the deployment target),
we now do the same. We also match `ld-prime`'s and `ld64`'s behavior by
warning on duplicate `-rpath` arguments. This can be disabled by the
LLD-specific `--no-warn-duplicate-rpath` flag.


  Commit: 1ce89899ad33a0d2976859d8d278dba4342cbb6b
      https://github.com/llvm/llvm-project/commit/1ce89899ad33a0d2976859d8d278dba4342cbb6b
  Author: Dmitry Polukhin <34227995+dmpolukhin at users.noreply.github.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M clang-tools-extra/docs/ReleaseNotes.rst
    M clang-tools-extra/test/clang-tidy/checkers/performance/unnecessary-value-param.cpp
    M clang/lib/Analysis/ExprMutationAnalyzer.cpp

  Log Message:
  -----------
  [clang-tidy] Fix false in unnecessary-value-param inside templates (#98488)

Summary:
If callExpr is type dependent, there is no way to analyze individual
arguments until template specialization. Before this diff only calls
with dependent callees were skipped so unnecessary-value-param was
processing arguments that had non-dependent type that gave false
positives because the call was not fully resolved till specialization.
So now instead of checking type dependent callee, the whole expression
will be checked for type dependent.

Test Plan: check-clang-tools


  Commit: dfddc0c4843baaf9605aeb1c4f82eac185e90265
      https://github.com/llvm/llvm-project/commit/dfddc0c4843baaf9605aeb1c4f82eac185e90265
  Author: Nikolas Klauser <nikolasklauser at berlin.de>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M libcxx/include/__type_traits/make_signed.h
    M libcxx/include/atomic
    M libcxx/include/expected
    M libcxx/include/filesystem
    M libcxx/include/format
    M libcxx/include/forward_list
    M libcxx/include/functional
    M libcxx/include/iterator
    M libcxx/include/mdspan
    M libcxx/include/memory
    M libcxx/include/memory_resource
    M libcxx/include/module.modulemap
    M libcxx/include/numeric
    M libcxx/include/ostream
    M libcxx/include/random
    M libcxx/include/ranges
    M libcxx/include/stop_token
    M libcxx/include/string_view
    M libcxx/include/type_traits
    M libcxx/include/utility
    M libcxx/test/libcxx/containers/sequences/deque/abi.compile.pass.cpp
    M libcxx/test/libcxx/containers/sequences/list/abi.compile.pass.cpp
    M libcxx/test/libcxx/iterators/bounded_iter/arithmetic.pass.cpp
    M libcxx/test/libcxx/iterators/bounded_iter/comparison.pass.cpp
    M libcxx/test/libcxx/iterators/bounded_iter/dereference.pass.cpp
    M libcxx/test/libcxx/iterators/bounded_iter/pointer_traits.pass.cpp
    M libcxx/test/libcxx/iterators/bounded_iter/types.compile.pass.cpp
    M libcxx/test/libcxx/memory/allocation_guard.pass.cpp
    M libcxx/test/libcxx/memory/compressed_pair/compressed_pair.pass.cpp
    M libcxx/test/libcxx/numerics/clamp_to_integral.pass.cpp
    M libcxx/test/libcxx/ranges/range.adaptors/range.adaptor.helpers/as-lvalue.lifetimebound.verify.cpp
    M libcxx/test/libcxx/ranges/range.adaptors/range.adaptor.helpers/as-lvalue.pass.cpp
    M libcxx/test/libcxx/transitive_includes/cxx03.csv
    M libcxx/test/libcxx/transitive_includes/cxx11.csv
    M libcxx/test/libcxx/transitive_includes/cxx14.csv
    M libcxx/test/libcxx/transitive_includes/cxx17.csv
    M libcxx/test/libcxx/transitive_includes/cxx20.csv
    M libcxx/test/libcxx/transitive_includes/cxx23.csv
    M libcxx/test/libcxx/transitive_includes/cxx26.csv
    M libcxx/test/libcxx/type_traits/is_callable.compile.pass.cpp
    M libcxx/test/libcxx/type_traits/is_constant_evaluated.pass.cpp
    M libcxx/test/libcxx/type_traits/is_implicitly_default_constructible.pass.cpp
    M libcxx/test/libcxx/type_traits/is_specialization.compile.pass.cpp
    M libcxx/test/libcxx/type_traits/is_specialization.verify.cpp
    M libcxx/test/libcxx/type_traits/lazy_metafunctions.pass.cpp
    M libcxx/test/libcxx/utilities/exception_guard.no_exceptions.pass.cpp
    M libcxx/test/libcxx/utilities/exception_guard.pass.cpp
    M libcxx/test/libcxx/utilities/function.objects/func.bind.partial/compose.pass.cpp
    M libcxx/test/libcxx/utilities/meta/meta_base.pass.cpp
    M libcxx/test/std/algorithms/alg.sorting/alg.heap.operations/make.heap/ranges_make_heap.pass.cpp
    M libcxx/test/std/algorithms/alg.sorting/alg.heap.operations/pop.heap/ranges_pop_heap.pass.cpp
    M libcxx/test/std/algorithms/alg.sorting/alg.heap.operations/push.heap/ranges_push_heap.pass.cpp
    M libcxx/test/std/ranges/range.adaptors/range.all/range.owning.view/begin_end.pass.cpp
    M libcxx/test/std/ranges/range.factories/range.repeat.view/iterator/plus_eq.pass.cpp
    M libcxx/test/support/test_iterators.h

  Log Message:
  -----------
  [libc++] Include the rest of the detail headers by version in the umbrella headers (#96032)

This is a follow-up to #83740.


  Commit: c6144cb0de35013e19ddd4d9fbc86367bb1ba223
      https://github.com/llvm/llvm-project/commit/c6144cb0de35013e19ddd4d9fbc86367bb1ba223
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

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

  Log Message:
  -----------
  [ValueTracking] Remove unnecessary `m_ElementWiseBitCast` from `isKnownNonZeroFromOperator`; NFC


  Commit: d097f430a172a5d798a39b416b1af84f4ec572e1
      https://github.com/llvm/llvm-project/commit/d097f430a172a5d798a39b416b1af84f4ec572e1
  Author: Dmitry Vasilyev <dvassiliev at accesssoftek.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp
    M lldb/tools/lldb-server/lldb-platform.cpp

  Log Message:
  -----------
  [lldb] Fixed the error `unable to launch a GDB server` in API tests (#98833)

TestPlatformLaunchGDBServer.py runs `ldb-server` w/o parameters
`--min-gdbserver-port`, `--max-gdbserver-port` or `--gdbserver-port`. So
`gdbserver_portmap` is empty and
`gdbserver_portmap.GetNextAvailablePort()` will return 0. Do not call
`portmap_for_child.AllowPort(0)` in this case. Otherwise
`portmap_for_child.GetNextAvailablePort()` will allocate and never free
the port 0 and next call `portmap_for_child.GetNextAvailablePort()` will
fail.

Added few asserts in `GDBRemoteCommunicationServerPlatform::PortMap` to
avoid such issue in the future.

This patch fixes a bug added in #88845. The behaviour is very close to
#97537 w/o parameters `--min-gdbserver-port`, `--max-gdbserver-port` and
`--gdbserver-port`.


  Commit: ba8e4920ca57518f429bcf0a68ed3d48195fb1e6
      https://github.com/llvm/llvm-project/commit/ba8e4920ca57518f429bcf0a68ed3d48195fb1e6
  Author: Uday Bondhugula <uday at polymagelabs.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M mlir/lib/Dialect/Affine/Utils/LoopUtils.cpp

  Log Message:
  -----------
  [MLIR] NFC. Remove anti-patterns given the default null init for Value (#99457)

Remove anti-patterns given the default null init for Value. Drop some
extra includes while on this file. NFC.

Co-authored-by: GitHub runner <github-runner at polymagelabs.com>


  Commit: e4a2d74e0917d481ecda8e8ff0c0af3c683c9441
      https://github.com/llvm/llvm-project/commit/e4a2d74e0917d481ecda8e8ff0c0af3c683c9441
  Author: Him188 <tguan at nvidia.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
    M llvm/test/CodeGen/AArch64/GlobalISel/load-addressing-modes.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/store-addressing-modes.mir
    M llvm/test/CodeGen/AArch64/aarch64-fold-lslfast.ll

  Log Message:
  -----------
  [AArch64][GISel] Always fold G_SHL into addressing mode where possible, unless the subtarget has addr-lsl-slow-14 (#96603)

Before this patch, we fold G_SHL into addressing mode lsl only when
there is exactly one usage, or all the usages are memory ops, or we are
optimizing for size. However, lsl is free on all aarch64 targets except
those with FeatureAddrLSLSlow14.

This patch uses this fact and always folds G_SHL into lsl for memory
ops, with exceptions for FeatureAddrLSLSlow14.


This patch also fixes GISel 15% regression in TSVC kernel s482, and
brings regression in s291 from 20% to 10%.


  Commit: c661422db04d86b83c1bfeed18e31745a3725357
      https://github.com/llvm/llvm-project/commit/c661422db04d86b83c1bfeed18e31745a3725357
  Author: Michael Kruse <llvm-project at meinersbur.de>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M clang/lib/StaticAnalyzer/Core/ExprEngine.cpp

  Log Message:
  -----------
  [Clang] Handle OMPReverseDirectiveClass in switch


  Commit: 783e07f3a4f4684613ffb4a442c97f25c83f309b
      https://github.com/llvm/llvm-project/commit/783e07f3a4f4684613ffb4a442c97f25c83f309b
  Author: Bjorn Pettersson <bjorn.a.pettersson at ericsson.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/test/Transforms/InstCombine/ashr-demand.ll

  Log Message:
  -----------
  [InstCombine] Add tests cases related to demanded use bits for ashr

When trying to improve value tracking in
   https://github.com/llvm/llvm-project/pull/97693
some regressions was found due to a "weirdness" in simplify demanded
use bits for ashr. Normally an ashr is replaced by lshr when the
shifted in bits aren't demanded. Some years ago (see commit
22178dd33b346020) there was a test case motivating to keep the ashr
when any sign bit (besides the shifted in bits) was demanded. The
weird part about it is that the better we get at analysing known sign
bits, the less likely it is that we canonicalize from ashr to lshr.
That makes it hard to tune other combines to work based on the
canonicalization, as well as possibly resulting in unexpected
regressions when improving value tracking.

This patch adds a test case for which it would be better to
canonicalize ashr into lshr when possible. Worth mentioning is also
that reverting 22178dd33b346020 doesn't seem to cause regressions
in any other lit tests (not even the one added in 22178dd33b346020).


  Commit: b8c4c58ecf186dd91f40bdff4d1bdad403435789
      https://github.com/llvm/llvm-project/commit/b8c4c58ecf186dd91f40bdff4d1bdad403435789
  Author: Bjorn Pettersson <bjorn.a.pettersson at ericsson.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
    M llvm/test/Transforms/InstCombine/ashr-demand.ll

  Log Message:
  -----------
  [InstCombine] Turn AShr into LShr more often in SimplifyDemandedUseBits (#99155)

The functional change here is to undo "llvm-svn: 311773", aka D36936,
aka commit 22178dd33b3460207b8. That patch avoided to convert AShr
into LShr in SimplifyDemandedUseBits based on known sign bits
analysis. Even if it would be legal to turn the shift into a
logical shift (given by the fact that the shifted in bits wasn't
demanded), that patch prevented converting the shift into LShr when
any of the original sign bits were demanded.
One side effect of the reverted functionalty was that the better we
were at computing number of sign bits, the less likely it was that
we would replace AShr by LShr during SimplifyDemandedUseBits. This
was seen in https://github.com/llvm/llvm-project/pull/97693/ when
an improvement of ComputeNumSignBits resulted in regressions due
to no longer rewriting AShr to LShr.
The test case from D36936 still passes after this commit. So it seems
like at least the compiler has been taught how to optimize that
scenario even if we do the AShr->LShr transform more aggressively.


  Commit: c68c289984d161d220b9434be5dbbfc387981e23
      https://github.com/llvm/llvm-project/commit/c68c289984d161d220b9434be5dbbfc387981e23
  Author: Kiran Chandramohan <kiran.chandramohan at arm.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M flang/lib/Parser/openmp-parsers.cpp
    A flang/test/Parser/OpenMP/proc-bind.f90

  Log Message:
  -----------
  [Flang][OpenMP] Add support for proc_bind=primary (#99319)

The support was missing only in the parser, all other phases handle the
primary option for proc_bind.

Fixes one of the issues in parsing for gomp/affinity-1.f90.
(https://discourse.llvm.org/t/proposal-rename-flang-new-to-flang/69462/60)


  Commit: da0c8b275564f814a53a5c19497669ae2d99538d
      https://github.com/llvm/llvm-project/commit/da0c8b275564f814a53a5c19497669ae2d99538d
  Author: Hau Hsu <hau.hsu at sifive.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M compiler-rt/lib/asan/asan_mapping.h
    M compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_platform.h
    M llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp

  Log Message:
  -----------
  [RISCV][sanitizer] Fix sanitizer support for different virtual memory layout (#66743)

This PR combines the following reviews from Phabricator:
* https://reviews.llvm.org/D139823
* https://reviews.llvm.org/D139827

Other related (and merged) reviews are:
* https://reviews.llvm.org/D152895
* https://reviews.llvm.org/D152991
* https://reviews.llvm.org/D152990

---------

Co-authored-by: Kito Cheng <kito.cheng at gmail.com>


  Commit: 4a19be5d45e4b1e02c2512023151be5d56ef5744
      https://github.com/llvm/llvm-project/commit/4a19be5d45e4b1e02c2512023151be5d56ef5744
  Author: Hristo Hristov <hghristov.rmm at gmail.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M libcxx/docs/FeatureTestMacroTable.rst
    M libcxx/docs/ReleaseNotes/19.rst
    M libcxx/docs/Status/Cxx2cPapers.csv
    M libcxx/include/string
    M libcxx/include/version
    M libcxx/test/std/language.support/support.limits/support.limits.general/string.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/string_view.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
    A libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string.string_view.pass.cpp
    M libcxx/utils/generate_feature_test_macro_components.py

  Log Message:
  -----------
  [libc++][strings] P2591R5: Concatenation of strings and string views (#88389)

Implemented: https://wg21.link/P2591R5
- https://eel.is/c++draft/string.syn
- https://eel.is/c++draft/string.op.plus

---------

Co-authored-by: Hristo Hristov <zingam at outlook.com>


  Commit: b7a6cca218aef4e18ce03a58561555ef0dee7231
      https://github.com/llvm/llvm-project/commit/b7a6cca218aef4e18ce03a58561555ef0dee7231
  Author: Xing Xue <xingxue at outlook.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/sized_delete_array14.pass.cpp
    M libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete14.pass.cpp

  Log Message:
  -----------
  [libc++][test] XFAIL sized deallocation tests for AIX, z/OS, and MinGW (#98960)

The sized deallocation test cases fail on AIX, z/OS, and MinGW because
they default to `-fno-sized-deallocation`. This patch XFAILs these test
cases for the affected targets. Once they change the default, we will
get `unexpectedly pass`.


  Commit: 6838c7afb2d2fa5eb642a4b5922ae55d97f7b344
      https://github.com/llvm/llvm-project/commit/6838c7afb2d2fa5eb642a4b5922ae55d97f7b344
  Author: Michael Kruse <llvm-project at meinersbur.de>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M libclc/CMakeLists.txt
    M libclc/cmake/modules/AddLibclc.cmake

  Log Message:
  -----------
  [libclc] Revise IDE folder structure (#89746)

Reviewers of #89153 suggested to break up the patch into per-subproject
patches. This is the libclc part. See #89153 for the entire series and
motivation.

Update the folder titles for targets in the monorepository that have not
seen taken care of for some time. These are the folders that targets are
organized in Visual Studio and XCode
(`set_property(TARGET <target> PROPERTY FOLDER "<title>")`)
when using the respective CMake's IDE generator.

 * Ensure that every target is in a folder
 * Use a folder hierarchy with each LLVM subproject as a top-level folder
 * Use consistent folder names between subprojects
 * When using target-creating functions from AddLLVM.cmake, automatically
deduce the folder. This reduces the number of
`set_property`/`set_target_property`, but are still necessary when
`add_custom_target`, `add_executable`, `add_library`, etc. are used. A
LLVM_SUBPROJECT_TITLE definition is used for that in each subproject's
root CMakeLists.txt.


  Commit: c0084c36ed55ce78331aca7d0d10781a9f00b256
      https://github.com/llvm/llvm-project/commit/c0084c36ed55ce78331aca7d0d10781a9f00b256
  Author: Hideto Ueno <uenoku.tokotoko at gmail.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M mlir/lib/Bytecode/Reader/BytecodeReader.cpp

  Log Message:
  -----------
  [mlir][BytecodeReader] Const qualify *SectionReader, NFC (#99376)

`StringSectionReader`, `ResourceSectionReader` and
`PropertiesSectionReader` are immutable after `initialize` so this PR
adds const to their parsing functions and references in `AttrTypeReader`
and `DialectReader`.


  Commit: 7e6a73959ae97b1f9476a90290a492ba90cb950d
      https://github.com/llvm/llvm-project/commit/7e6a73959ae97b1f9476a90290a492ba90cb950d
  Author: Romaric Jodin <rjodin at chromium.org>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M libclc/clspv/lib/math/fma.cl
    M libclc/generic/include/clc/convert.h
    M libclc/generic/include/math/clc_ldexp.h
    M libclc/generic/lib/clcmacro.h
    M libclc/generic/lib/gen_convert.py
    M libclc/generic/lib/math/acos.cl
    M libclc/generic/lib/math/acosh.cl
    M libclc/generic/lib/math/acospi.cl
    M libclc/generic/lib/math/asinh.cl
    M libclc/generic/lib/math/atan.cl
    M libclc/generic/lib/math/atan2.cl
    M libclc/generic/lib/math/atan2pi.cl
    M libclc/generic/lib/math/atanh.cl
    M libclc/generic/lib/math/atanpi.cl
    M libclc/generic/lib/math/cbrt.cl
    M libclc/generic/lib/math/clc_ldexp.cl
    M libclc/generic/lib/math/clc_pown.cl
    M libclc/generic/lib/math/clc_remquo.cl
    M libclc/generic/lib/math/clc_rootn.cl
    M libclc/generic/lib/math/clc_sw_binary.inc
    M libclc/generic/lib/math/clc_sw_unary.inc
    M libclc/generic/lib/math/cos.cl
    M libclc/generic/lib/math/cosh.cl
    M libclc/generic/lib/math/cospi.cl
    M libclc/generic/lib/math/exp.cl
    M libclc/generic/lib/math/expm1.cl
    M libclc/generic/lib/math/fdim.inc
    M libclc/generic/lib/math/frexp.inc
    M libclc/generic/lib/math/ilogb.cl
    M libclc/generic/lib/math/lgamma.cl
    M libclc/generic/lib/math/lgamma_r.cl
    M libclc/generic/lib/math/lgamma_r.inc
    M libclc/generic/lib/math/log10.cl
    M libclc/generic/lib/math/log1p.cl
    M libclc/generic/lib/math/log2.cl
    M libclc/generic/lib/math/log_base.h
    M libclc/generic/lib/math/logb.cl
    M libclc/generic/lib/math/pown.inc
    M libclc/generic/lib/math/remquo.inc
    M libclc/generic/lib/math/rootn.inc
    M libclc/generic/lib/math/sin.cl
    M libclc/generic/lib/math/sincos.inc
    M libclc/generic/lib/math/sinh.cl
    M libclc/generic/lib/math/sinpi.cl
    M libclc/generic/lib/math/tanh.cl

  Log Message:
  -----------
  libclc: increase fp16 support (#98149)

Increase fp16 support to allow clspv to continue to be OpenCL compliant
following the update of the OpenCL-CTS adding more testing on math
functions and conversions with half.

Math functions are implemented by upscaling to fp32 and using the fp32
implementation. It garantees the accuracy required for half-precision
float-point by the CTS.


  Commit: 61a58633d541780e34e6d459af2631b3539d415f
      https://github.com/llvm/llvm-project/commit/61a58633d541780e34e6d459af2631b3539d415f
  Author: Nico Weber <thakis at chromium.org>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/utils/gn/secondary/clang-tools-extra/clangd/BUILD.gn
    M llvm/utils/gn/secondary/clang-tools-extra/clangd/test/BUILD.gn
    M llvm/utils/gn/secondary/clang-tools-extra/clangd/unittests/BUILD.gn

  Log Message:
  -----------
  [gn build] Port fe6c24000f2d (clangd modules)


  Commit: d1d14b78d18a9f45f36e580fdd8d499a4bf09093
      https://github.com/llvm/llvm-project/commit/d1d14b78d18a9f45f36e580fdd8d499a4bf09093
  Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/utils/gn/secondary/llvm/lib/SandboxIR/BUILD.gn
    M llvm/utils/gn/secondary/llvm/unittests/SandboxIR/BUILD.gn

  Log Message:
  -----------
  [gn build] Port 5338bd3c8ac5


  Commit: 38f1dd2e45b854c1d682dd1d4481ef471e61fa10
      https://github.com/llvm/llvm-project/commit/38f1dd2e45b854c1d682dd1d4481ef471e61fa10
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M libc/config/gpu/entrypoints.txt
    M libc/docs/gpu/support.rst

  Log Message:
  -----------
  [libc] Remove `strerror_r` on the GPU for now

Summary:
This function has conflicting definitions, which makes it difficult to
use in an offloading setting. Disable it for now.


  Commit: cb3de24b5c0a662ba4a03c6c06a2d765d558bf62
      https://github.com/llvm/llvm-project/commit/cb3de24b5c0a662ba4a03c6c06a2d765d558bf62
  Author: Hristo Hristov <hghristov.rmm at gmail.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M libcxx/docs/ReleaseNotes/19.rst
    M libcxx/docs/Status/Cxx2c.rst
    M libcxx/docs/Status/Cxx2cPapers.csv
    M libcxx/include/__iterator/concepts.h
    M libcxx/test/std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirect_binary_predicate.compile.pass.cpp
    M libcxx/test/std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirect_equivalence_relation.compile.pass.cpp
    M libcxx/test/std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirect_strict_weak_order.compile.pass.cpp
    M libcxx/test/std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirect_unary_predicate.compile.pass.cpp
    M libcxx/test/std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirectly_regular_unary_invocable.compile.pass.cpp
    M libcxx/test/std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirectly_unary_invocable.compile.pass.cpp
    M libcxx/utils/generate_feature_test_macro_components.py

  Log Message:
  -----------
  [libc++][iterator][ranges] P2997R1: Removing the common reference requirement from the indirectly invocable concepts (#98817)

Implements as DR against C++20: https://wg21.link/P2997R1

References:
- https://eel.is/c++draft/indirectcallable.indirectinvocable
- https://eel.is/c++draft/version.syn#header:%3cversion%3e

---------

Co-authored-by: Hristo Hristov <zingam at outlook.com>


  Commit: b634e057ddecc41dce046887d0f0854fed305374
      https://github.com/llvm/llvm-project/commit/b634e057ddecc41dce046887d0f0854fed305374
  Author: Han-Kuan Chen <hankuan.chen at sifive.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    A llvm/test/Transforms/SLPVectorizer/revec-fix-99411.ll

  Log Message:
  -----------
  [SLP][REVEC] Fix false assumption of the source for castToScalarTyElem. (#99424)

The argument V may come from adjustExtracts, which is the vector operand
of ExtractElementInst. In addition, it is not existed in getTreeEntry.

The vector operand of ExtractElementInst may have a type of <1 x Ty>,
ensuring that the number of elements in ScalarTy and VecTy are equal.

reference: https://github.com/llvm/llvm-project/issues/99411


  Commit: 68cb903594cd03dd708ef70c85c10807a6deefb5
      https://github.com/llvm/llvm-project/commit/68cb903594cd03dd708ef70c85c10807a6deefb5
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/vselect-avx.ll

  Log Message:
  -----------
  Revert d43ec97de081755990264049eba09cb7c83cb321 "[X86] combineConcatVectorOps - IsConcatFree - peek through bitcasts to find inplace subvectors."

I've been given reports of this causing infinite loops downstream - I'm going to revert for now while I investigate.


  Commit: 8badfccefeaff2c05ef71a8d2fd6d803a1b4e129
      https://github.com/llvm/llvm-project/commit/8badfccefeaff2c05ef71a8d2fd6d803a1b4e129
  Author: jameshu15869 <55058507+jameshu15869 at users.noreply.github.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M libc/benchmarks/gpu/CMakeLists.txt
    M libc/benchmarks/gpu/LibcGpuBenchmark.cpp
    M libc/benchmarks/gpu/LibcGpuBenchmark.h
    M libc/benchmarks/gpu/src/ctype/CMakeLists.txt
    M libc/benchmarks/gpu/src/ctype/isalnum_benchmark.cpp

  Log Message:
  -----------
  [libc] Add Multithreaded GPU Benchmarks (#98964)

This PR runs benchmarks on a 32 threads (A single warp on NVPTX) by
default, adding the option for single threaded benchmarks. We can
specify that a benchmark should be run on a single thread using the
`SINGLE_THREADED_BENCHMARK()` macro.

I chose to use a flag here so that other options could be added in the
future.


  Commit: bf02f41726a48e5eb1dbe7c188f9e36ec6a29ac2
      https://github.com/llvm/llvm-project/commit/bf02f41726a48e5eb1dbe7c188f9e36ec6a29ac2
  Author: Aaron Ballman <aaron at aaronballman.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M clang/lib/Sema/ParsedAttr.cpp
    M clang/lib/Sema/SemaDeclAttr.cpp
    M clang/test/C/C2y/n3254.c
    M clang/test/Sema/alignas.c

  Log Message:
  -----------
  Fix a regression with alignas on structure members in C (#98642)

This was a 19.x regression and thus has no release note.

Fixes #95032


  Commit: c5f402f95d9617882b26d5799f503383b895c2e4
      https://github.com/llvm/llvm-project/commit/c5f402f95d9617882b26d5799f503383b895c2e4
  Author: Egor Zhdan <e_zhdan at apple.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M clang/lib/APINotes/APINotesFormat.h
    M clang/lib/APINotes/APINotesReader.cpp
    M clang/lib/APINotes/APINotesWriter.cpp

  Log Message:
  -----------
  [APINotes] Reduce memory footprint for Obj-C/C++ contexts

We were storing extraneous data for certain Objective-C/C++ entities.
Specifically, for declarations that can be nested in another context
(such as functions) we were storing the kind of the parent context in
addition to its ID. The ID is always sufficient.

This removes the logically incorrect usages of `ContextTableKey` that
don't actually describe a context, but rather describe a single
declaration. This introduces `SingleDeclTableKey` to store that kind of
entities in a more compact and reasonable way.


  Commit: 39bb244a16e59cb8f2080f96e9de599007762635
      https://github.com/llvm/llvm-project/commit/39bb244a16e59cb8f2080f96e9de599007762635
  Author: Han-Kuan Chen <hankuan.chen at sifive.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

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

  Log Message:
  -----------
  [SLP][REVEC] Make Instruction::Call support vector instructions. (#99317)


  Commit: 3acf8797c2a2a1b457bc5b8c9997a25e33442203
      https://github.com/llvm/llvm-project/commit/3acf8797c2a2a1b457bc5b8c9997a25e33442203
  Author: wanglei <wanglei at loongson.cn>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M .git-blame-ignore-revs
    M .github/CODEOWNERS
    M bolt/include/bolt/Core/DIEBuilder.h
    M bolt/include/bolt/Rewrite/RewriteInstance.h
    M bolt/lib/Core/DIEBuilder.cpp
    M bolt/lib/Rewrite/RewriteInstance.cpp
    A bolt/test/X86/Inputs/ambiguous_fragment.s
    A bolt/test/X86/Inputs/ambiguous_fragment.script
    A bolt/test/X86/ambiguous_fragment.test
    M clang-tools-extra/clang-tidy/bugprone/UnusedReturnValueCheck.cpp
    M clang-tools-extra/clang-tidy/modernize/UseRangesCheck.cpp
    M clang-tools-extra/clang-tidy/modernize/UseStdFormatCheck.cpp
    M clang-tools-extra/clang-tidy/modernize/UseStdPrintCheck.cpp
    M clang-tools-extra/clangd/CMakeLists.txt
    M clang-tools-extra/clangd/ClangdLSPServer.cpp
    M clang-tools-extra/clangd/ClangdLSPServer.h
    M clang-tools-extra/clangd/ClangdServer.cpp
    M clang-tools-extra/clangd/ClangdServer.h
    M clang-tools-extra/clangd/Compiler.h
    M clang-tools-extra/clangd/GlobalCompilationDatabase.cpp
    M clang-tools-extra/clangd/GlobalCompilationDatabase.h
    A clang-tools-extra/clangd/ModulesBuilder.cpp
    A clang-tools-extra/clangd/ModulesBuilder.h
    M clang-tools-extra/clangd/ParsedAST.cpp
    M clang-tools-extra/clangd/Preamble.cpp
    M clang-tools-extra/clangd/Preamble.h
    A clang-tools-extra/clangd/ProjectModules.h
    A clang-tools-extra/clangd/ScanningProjectModules.cpp
    A clang-tools-extra/clangd/ScanningProjectModules.h
    M clang-tools-extra/clangd/test/CMakeLists.txt
    A clang-tools-extra/clangd/test/modules.test
    M clang-tools-extra/clangd/tool/Check.cpp
    M clang-tools-extra/clangd/tool/ClangdMain.cpp
    M clang-tools-extra/clangd/unittests/CMakeLists.txt
    A clang-tools-extra/clangd/unittests/PrerequisiteModulesTest.cpp
    M clang-tools-extra/clangd/unittests/TestFS.h
    M clang-tools-extra/docs/ReleaseNotes.rst
    M clang-tools-extra/docs/clang-tidy/checks/modernize/use-ranges.rst
    M clang-tools-extra/docs/modularize.rst
    A clang-tools-extra/test/clang-doc/enum.cpp
    A clang-tools-extra/test/clang-doc/namespace.cpp
    M clang-tools-extra/test/clang-tidy/checkers/modernize/Inputs/use-ranges/fake_std.h
    M clang-tools-extra/test/clang-tidy/checkers/modernize/use-ranges.cpp
    M clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-format-custom.cpp
    M clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-format-fmt.cpp
    M clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-print-custom.cpp
    M clang-tools-extra/test/clang-tidy/checkers/performance/unnecessary-value-param.cpp
    M clang/cmake/caches/Fuchsia-stage2.cmake
    M clang/docs/CommandGuide/clang.rst
    M clang/docs/HLSL/HLSLIRReference.rst
    M clang/docs/HLSL/ResourceTypes.rst
    M clang/docs/ReleaseNotes.rst
    M clang/docs/tools/clang-formatted-files.txt
    M clang/include/clang-c/Index.h
    M clang/include/clang/APINotes/Types.h
    M clang/include/clang/AST/ASTContext.h
    M clang/include/clang/AST/Expr.h
    M clang/include/clang/AST/RecursiveASTVisitor.h
    M clang/include/clang/AST/Stmt.h
    M clang/include/clang/AST/StmtOpenMP.h
    M clang/include/clang/AST/Type.h
    M clang/include/clang/Basic/Builtins.def
    M clang/include/clang/Basic/Builtins.h
    M clang/include/clang/Basic/BuiltinsBase.td
    M clang/include/clang/Basic/BuiltinsX86.def
    M clang/include/clang/Basic/DiagnosticDriverKinds.td
    M clang/include/clang/Basic/DiagnosticGroups.td
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/include/clang/Basic/StmtNodes.td
    M clang/include/clang/Basic/TokenKinds.def
    M clang/include/clang/Basic/TokenKinds.h
    M clang/include/clang/Driver/Options.td
    M clang/include/clang/ExtractAPI/ExtractAPIVisitor.h
    M clang/include/clang/Lex/Preprocessor.h
    M clang/include/clang/Parse/Parser.h
    M clang/include/clang/Sema/HLSLExternalSemaSource.h
    M clang/include/clang/Sema/Sema.h
    M clang/include/clang/Sema/SemaConcept.h
    M clang/include/clang/Sema/SemaOpenMP.h
    M clang/include/clang/Serialization/ASTBitCodes.h
    M clang/lib/APINotes/APINotesFormat.h
    M clang/lib/APINotes/APINotesReader.cpp
    M clang/lib/APINotes/APINotesWriter.cpp
    M clang/lib/AST/ASTContext.cpp
    M clang/lib/AST/ASTImporter.cpp
    M clang/lib/AST/CMakeLists.txt
    M clang/lib/AST/ExprConstant.cpp
    M clang/lib/AST/Interp/ByteCodeEmitter.cpp
    M clang/lib/AST/Interp/Compiler.cpp
    M clang/lib/AST/Interp/Compiler.h
    M clang/lib/AST/Interp/Context.cpp
    M clang/lib/AST/Interp/Descriptor.cpp
    M clang/lib/AST/Interp/Descriptor.h
    A clang/lib/AST/Interp/DynamicAllocator.cpp
    A clang/lib/AST/Interp/DynamicAllocator.h
    M clang/lib/AST/Interp/EvalEmitter.cpp
    M clang/lib/AST/Interp/EvaluationResult.cpp
    M clang/lib/AST/Interp/EvaluationResult.h
    M clang/lib/AST/Interp/Interp.cpp
    M clang/lib/AST/Interp/Interp.h
    M clang/lib/AST/Interp/InterpBlock.cpp
    M clang/lib/AST/Interp/InterpBlock.h
    M clang/lib/AST/Interp/InterpFrame.cpp
    M clang/lib/AST/Interp/InterpState.cpp
    M clang/lib/AST/Interp/InterpState.h
    M clang/lib/AST/Interp/Opcodes.td
    M clang/lib/AST/Interp/Pointer.cpp
    M clang/lib/AST/Interp/Pointer.h
    M clang/lib/AST/MicrosoftMangle.cpp
    M clang/lib/AST/StmtOpenMP.cpp
    M clang/lib/AST/StmtPrinter.cpp
    M clang/lib/AST/StmtProfile.cpp
    M clang/lib/AST/Type.cpp
    M clang/lib/Analysis/ExprMutationAnalyzer.cpp
    M clang/lib/Basic/Builtins.cpp
    M clang/lib/Basic/CMakeLists.txt
    M clang/lib/Basic/OpenMPKinds.cpp
    M clang/lib/Basic/Targets.cpp
    A clang/lib/Basic/Targets/Le64.cpp
    A clang/lib/Basic/Targets/Le64.h
    M clang/lib/Basic/Targets/OSTargets.h
    M clang/lib/Basic/Targets/X86.cpp
    M clang/lib/Basic/Targets/X86.h
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/lib/CodeGen/CGDeclCXX.cpp
    M clang/lib/CodeGen/CGExprComplex.cpp
    M clang/lib/CodeGen/CGOpenMPRuntime.cpp
    M clang/lib/CodeGen/CGStmt.cpp
    M clang/lib/CodeGen/CGStmtOpenMP.cpp
    M clang/lib/CodeGen/CodeGenFunction.h
    M clang/lib/CodeGen/CodeGenModule.cpp
    M clang/lib/CodeGen/CodeGenModule.h
    M clang/lib/CodeGen/ItaniumCXXABI.cpp
    M clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp
    M clang/lib/Driver/ToolChains/Arch/X86.cpp
    M clang/lib/Driver/ToolChains/Clang.cpp
    M clang/lib/Driver/ToolChains/Flang.cpp
    M clang/lib/ExtractAPI/DeclarationFragments.cpp
    M clang/lib/Frontend/InitPreprocessor.cpp
    M clang/lib/Headers/mm3dnow.h
    M clang/lib/Headers/stdatomic.h
    M clang/lib/Headers/x86intrin.h
    M clang/lib/Parse/ParseExpr.cpp
    M clang/lib/Parse/ParseOpenMP.cpp
    M clang/lib/Parse/ParseTemplate.cpp
    M clang/lib/Sema/CheckExprLifetime.cpp
    M clang/lib/Sema/HLSLExternalSemaSource.cpp
    M clang/lib/Sema/ParsedAttr.cpp
    M clang/lib/Sema/Sema.cpp
    M clang/lib/Sema/SemaConcept.cpp
    M clang/lib/Sema/SemaDecl.cpp
    M clang/lib/Sema/SemaDeclAttr.cpp
    M clang/lib/Sema/SemaDeclCXX.cpp
    M clang/lib/Sema/SemaExceptionSpec.cpp
    M clang/lib/Sema/SemaExpr.cpp
    M clang/lib/Sema/SemaExprCXX.cpp
    M clang/lib/Sema/SemaInit.cpp
    M clang/lib/Sema/SemaOpenMP.cpp
    M clang/lib/Sema/SemaOverload.cpp
    M clang/lib/Sema/SemaTemplateVariadic.cpp
    M clang/lib/Sema/TreeTransform.h
    M clang/lib/Serialization/ASTReaderDecl.cpp
    M clang/lib/Serialization/ASTReaderStmt.cpp
    M clang/lib/Serialization/ASTWriter.cpp
    M clang/lib/Serialization/ASTWriterDecl.cpp
    M clang/lib/Serialization/ASTWriterStmt.cpp
    M clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
    M clang/test/AST/HLSL/RWBuffer-AST.hlsl
    R clang/test/AST/HLSL/ResourceStruct.hlsl
    M clang/test/AST/Interp/functions.cpp
    M clang/test/AST/Interp/lambda.cpp
    A clang/test/AST/Interp/new-delete.cpp
    A clang/test/C/C23/n2653.c
    M clang/test/C/C2y/n3254.c
    R clang/test/CodeGen/X86/3dnow-builtins.c
    M clang/test/CodeGen/bitfield-access-pad.c
    M clang/test/CodeGen/bitfield-access-unit.c
    M clang/test/CodeGen/builtins-x86.c
    A clang/test/CodeGen/math-libcalls-tbaa.cpp
    M clang/test/CodeGen/pragma-cx-limited-range.c
    M clang/test/CodeGenCXX/bitfield-access-empty.cpp
    M clang/test/CodeGenCXX/bitfield-access-tail.cpp
    M clang/test/CodeGenCXX/nullptr.cpp
    A clang/test/CodeGenCXX/ptrauth-static-destructors.cpp
    A clang/test/CodeGenCXX/ptrauth-throw.cpp
    M clang/test/Driver/Ofast.c
    M clang/test/Driver/amdgpu-openmp-toolchain.c
    M clang/test/Driver/print-supported-extensions-riscv.c
    M clang/test/Driver/x86-target-features.c
    M clang/test/Headers/mm3dnow.c
    M clang/test/OpenMP/depend_iterator_bug.c
    A clang/test/OpenMP/reverse_ast_print.cpp
    A clang/test/OpenMP/reverse_codegen.cpp
    A clang/test/OpenMP/reverse_messages.cpp
    M clang/test/OpenMP/task_codegen.c
    M clang/test/Preprocessor/embed_codegen.cpp
    M clang/test/Preprocessor/embed_constexpr.cpp
    M clang/test/Preprocessor/embed_weird.cpp
    M clang/test/Preprocessor/predefined-arch-macros.c
    M clang/test/Preprocessor/predefined-macros-no-warnings.c
    M clang/test/Preprocessor/riscv-target-features.c
    M clang/test/Preprocessor/x86_target_features.c
    M clang/test/Rewriter/rewrite-modern-catch.m
    M clang/test/Sema/alignas.c
    M clang/test/Sema/attr-weak.c
    M clang/test/Sema/c2x-typeof.c
    M clang/test/Sema/warn-lifetime-analysis-nocfg-disabled.cpp
    M clang/test/Sema/warn-lifetime-analysis-nocfg.cpp
    M clang/test/SemaCXX/attr-weak.cpp
    A clang/test/SemaCXX/cxx2c-fold-exprs.cpp
    M clang/test/SemaCXX/delete.cpp
    M clang/test/SemaCXX/new-delete.cpp
    M clang/test/SemaCXX/paren-list-agg-init.cpp
    M clang/test/SemaCXX/type-traits.cpp
    M clang/test/SemaCXX/warn-dangling-local.cpp
    M clang/test/SemaHLSL/BuiltIns/RWBuffers.hlsl
    M clang/test/SemaTemplate/instantiate-local-class.cpp
    M clang/test/SemaTemplate/instantiate-requires-expr.cpp
    M clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp
    M clang/tools/libclang/CIndex.cpp
    M clang/tools/libclang/CXCursor.cpp
    M clang/www/c_status.html
    M clang/www/cxx_status.html
    M compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake
    M compiler-rt/lib/asan/asan_mapping.h
    M compiler-rt/lib/fuzzer/FuzzerFork.cpp
    M compiler-rt/lib/nsan/nsan.cpp
    M compiler-rt/lib/safestack/safestack.cpp
    M compiler-rt/lib/safestack/safestack_platform.h
    M compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc
    M compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_platform.h
    M compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h
    M compiler-rt/lib/scudo/standalone/string_utils.h
    M compiler-rt/lib/scudo/standalone/tests/vector_test.cpp
    M compiler-rt/lib/scudo/standalone/vector.h
    M compiler-rt/lib/tsan/rtl/tsan_defs.h
    M compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp
    M compiler-rt/lib/tsan/rtl/tsan_interface_ann.cpp
    M compiler-rt/lib/tsan/rtl/tsan_mman.cpp
    M compiler-rt/lib/tsan/rtl/tsan_platform_mac.cpp
    M compiler-rt/lib/tsan/rtl/tsan_rtl.cpp
    M compiler-rt/lib/tsan/rtl/tsan_rtl.h
    M compiler-rt/lib/tsan/rtl/tsan_suppressions.cpp
    M compiler-rt/lib/tsan/rtl/tsan_vector_clock.h
    M compiler-rt/test/fuzzer/lit.cfg.py
    A compiler-rt/test/msan/Linux/prctl.cpp
    M compiler-rt/test/profile/instrprof-gc-sections.c
    M compiler-rt/test/safestack/lit.cfg.py
    M compiler-rt/test/sanitizer_common/TestCases/Linux/prctl.cpp
    M compiler-rt/test/sanitizer_common/TestCases/Linux/preadv2.cpp
    R compiler-rt/test/sanitizer_common/TestCases/Posix/sanitizer_bad_report_path_test.cpp
    M compiler-rt/test/sanitizer_common/TestCases/Posix/sanitizer_set_report_path_test.cpp
    M compiler-rt/www/index.html
    M flang/docs/Intrinsics.md
    M flang/include/flang/Frontend/TargetOptions.h
    M flang/include/flang/Lower/Bridge.h
    M flang/include/flang/Optimizer/Builder/FIRBuilder.h
    M flang/include/flang/Optimizer/Builder/IntrinsicCall.h
    M flang/include/flang/Optimizer/CodeGen/CGPasses.td
    M flang/include/flang/Optimizer/CodeGen/Target.h
    M flang/include/flang/Optimizer/Dialect/FIROps.td
    M flang/include/flang/Optimizer/Dialect/Support/FIRContext.h
    A flang/include/flang/Optimizer/Transforms/MemoryUtils.h
    M flang/include/flang/Optimizer/Transforms/Passes.td
    M flang/include/flang/Semantics/tools.h
    M flang/lib/Evaluate/intrinsics.cpp
    M flang/lib/Frontend/CompilerInvocation.cpp
    M flang/lib/Frontend/FrontendActions.cpp
    M flang/lib/Lower/Bridge.cpp
    M flang/lib/Lower/ConvertCall.cpp
    M flang/lib/Lower/ConvertVariable.cpp
    M flang/lib/Optimizer/Builder/FIRBuilder.cpp
    M flang/lib/Optimizer/Builder/IntrinsicCall.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/CUF/CUFOps.cpp
    M flang/lib/Optimizer/Dialect/FIROps.cpp
    M flang/lib/Optimizer/Dialect/Support/FIRContext.cpp
    M flang/lib/Optimizer/Transforms/AddDebugInfo.cpp
    M flang/lib/Optimizer/Transforms/CMakeLists.txt
    M flang/lib/Optimizer/Transforms/MemoryAllocation.cpp
    A flang/lib/Optimizer/Transforms/MemoryUtils.cpp
    M flang/lib/Optimizer/Transforms/StackArrays.cpp
    M flang/lib/Parser/openmp-parsers.cpp
    M flang/lib/Semantics/check-omp-structure.cpp
    M flang/lib/Semantics/check-omp-structure.h
    M flang/runtime/command.cpp
    M flang/runtime/time-intrinsic.cpp
    M flang/test/Driver/linker-flags.f90
    A flang/test/Driver/tune-cpu-fir.f90
    M flang/test/Fir/cuf-invalid.fir
    A flang/test/Fir/memory-allocation-opt-2.fir
    M flang/test/Integration/debug-fixed-array-type-2.f90
    M flang/test/Lower/CUDA/cuda-allocatable.cuf
    M flang/test/Lower/CUDA/cuda-data-transfer.cuf
    A flang/test/Lower/Intrinsics/second.f90
    A flang/test/Lower/tune-cpu-llvm.f90
    A flang/test/Parser/OpenMP/proc-bind.f90
    M flang/test/Semantics/OpenMP/clause-validity01.f90
    M flang/test/Semantics/OpenMP/do-collapse.f90
    M flang/test/Semantics/OpenMP/do09.f90
    A flang/test/Transforms/debug-local-global-storage-1.fir
    A flang/test/Transforms/stack-arrays-hlfir.f90
    M flang/test/Transforms/stack-arrays.fir
    M flang/tools/bbc/bbc.cpp
    M flang/tools/tco/tco.cpp
    M flang/unittests/Optimizer/FIRContextTest.cpp
    M libc/benchmarks/gpu/CMakeLists.txt
    M libc/benchmarks/gpu/LibcGpuBenchmark.cpp
    M libc/benchmarks/gpu/LibcGpuBenchmark.h
    M libc/benchmarks/gpu/src/ctype/CMakeLists.txt
    M libc/benchmarks/gpu/src/ctype/isalnum_benchmark.cpp
    M libc/cmake/modules/LLVMLibCCheckMPFR.cmake
    M libc/cmake/modules/LLVMLibCCompileOptionRules.cmake
    M libc/cmake/modules/LLVMLibCTestRules.cmake
    M libc/config/baremetal/config.json
    M libc/config/config.json
    M libc/config/darwin/arm/entrypoints.txt
    M libc/config/gpu/entrypoints.txt
    M libc/config/linux/aarch64/entrypoints.txt
    M libc/config/linux/arm/entrypoints.txt
    M libc/config/linux/riscv/entrypoints.txt
    M libc/config/linux/x86_64/entrypoints.txt
    M libc/config/linux/x86_64/headers.txt
    M libc/config/windows/entrypoints.txt
    M libc/docs/configure.rst
    M libc/docs/gpu/support.rst
    M libc/docs/math/index.rst
    M libc/include/llvm-libc-macros/generic-error-number-macros.h
    M libc/include/llvm-libc-macros/gpu/time-macros.h
    M libc/include/time.h.def
    M libc/newhdrgen/class_implementation/classes/function.py
    A libc/newhdrgen/gpu_headers.py
    M libc/newhdrgen/header.py
    A libc/newhdrgen/yaml/arpa/arpa_inet.yaml
    R libc/newhdrgen/yaml/arpa_inet.yaml
    M libc/newhdrgen/yaml/assert.yaml
    A libc/newhdrgen/yaml/features.yaml
    A libc/newhdrgen/yaml/gpu/gpu_rpc.yaml
    M libc/newhdrgen/yaml/math.yaml
    M libc/newhdrgen/yaml/pthread.yaml
    R libc/newhdrgen/yaml/rpc.yaml
    M libc/newhdrgen/yaml/search.yaml
    M libc/newhdrgen/yaml/sys/sys_random.yaml
    M libc/newhdrgen/yaml/sys/sys_time.yaml
    M libc/newhdrgen/yaml/time.yaml
    M libc/newhdrgen/yaml/wchar.yaml
    M libc/newhdrgen/yaml_to_classes.py
    M libc/spec/stdc.td
    M libc/src/__support/StringUtil/tables/stdc_errors.h
    M libc/src/math/CMakeLists.txt
    A libc/src/math/cbrt.h
    M libc/src/math/generic/CMakeLists.txt
    A libc/src/math/generic/cbrt.cpp
    M libc/src/stdlib/CMakeLists.txt
    A libc/src/stdlib/heap_sort.h
    M libc/src/stdlib/qsort.cpp
    A libc/src/stdlib/qsort_data.h
    M libc/src/stdlib/qsort_r.cpp
    M libc/src/stdlib/qsort_util.h
    A libc/src/stdlib/quick_sort.h
    M libc/src/stdlib/rand.cpp
    M libc/src/time/gpu/CMakeLists.txt
    A libc/src/time/gpu/clock_gettime.cpp
    M libc/test/UnitTest/HermeticTestUtils.cpp
    M libc/test/src/CMakeLists.txt
    M libc/test/src/math/CMakeLists.txt
    A libc/test/src/math/cbrt_test.cpp
    M libc/test/src/math/smoke/CMakeLists.txt
    A libc/test/src/math/smoke/cbrt_test.cpp
    M libc/test/src/stdlib/CMakeLists.txt
    A libc/test/src/stdlib/SortingTest.h
    A libc/test/src/stdlib/heap_sort_test.cpp
    M libc/test/src/stdlib/qsort_test.cpp
    A libc/test/src/stdlib/quick_sort_test.cpp
    M libc/test/src/string/strerror_test.cpp
    M libc/test/src/time/CMakeLists.txt
    M libc/test/src/time/clock_gettime_test.cpp
    M libc/test/src/wchar/CMakeLists.txt
    M libc/utils/gpu/loader/Loader.h
    M libc/utils/gpu/loader/Main.cpp
    M libc/utils/gpu/loader/amdgpu/Loader.cpp
    M libc/utils/gpu/loader/nvptx/Loader.cpp
    M libclc/CMakeLists.txt
    M libclc/clspv/lib/math/fma.cl
    M libclc/cmake/modules/AddLibclc.cmake
    M libclc/generic/include/clc/convert.h
    M libclc/generic/include/math/clc_ldexp.h
    M libclc/generic/lib/clcmacro.h
    M libclc/generic/lib/gen_convert.py
    M libclc/generic/lib/math/acos.cl
    M libclc/generic/lib/math/acosh.cl
    M libclc/generic/lib/math/acospi.cl
    M libclc/generic/lib/math/asinh.cl
    M libclc/generic/lib/math/atan.cl
    M libclc/generic/lib/math/atan2.cl
    M libclc/generic/lib/math/atan2pi.cl
    M libclc/generic/lib/math/atanh.cl
    M libclc/generic/lib/math/atanpi.cl
    M libclc/generic/lib/math/cbrt.cl
    M libclc/generic/lib/math/clc_ldexp.cl
    M libclc/generic/lib/math/clc_pown.cl
    M libclc/generic/lib/math/clc_remquo.cl
    M libclc/generic/lib/math/clc_rootn.cl
    M libclc/generic/lib/math/clc_sw_binary.inc
    M libclc/generic/lib/math/clc_sw_unary.inc
    M libclc/generic/lib/math/cos.cl
    M libclc/generic/lib/math/cosh.cl
    M libclc/generic/lib/math/cospi.cl
    M libclc/generic/lib/math/exp.cl
    M libclc/generic/lib/math/expm1.cl
    M libclc/generic/lib/math/fdim.inc
    M libclc/generic/lib/math/frexp.inc
    M libclc/generic/lib/math/ilogb.cl
    M libclc/generic/lib/math/lgamma.cl
    M libclc/generic/lib/math/lgamma_r.cl
    M libclc/generic/lib/math/lgamma_r.inc
    M libclc/generic/lib/math/log10.cl
    M libclc/generic/lib/math/log1p.cl
    M libclc/generic/lib/math/log2.cl
    M libclc/generic/lib/math/log_base.h
    M libclc/generic/lib/math/logb.cl
    M libclc/generic/lib/math/pown.inc
    M libclc/generic/lib/math/remquo.inc
    M libclc/generic/lib/math/rootn.inc
    M libclc/generic/lib/math/sin.cl
    M libclc/generic/lib/math/sincos.inc
    M libclc/generic/lib/math/sinh.cl
    M libclc/generic/lib/math/sinpi.cl
    M libclc/generic/lib/math/tanh.cl
    M libcxx/CMakeLists.txt
    M libcxx/benchmarks/CMakeLists.txt
    M libcxx/benchmarks/lit.cfg.py
    M libcxx/cmake/caches/AIX.cmake
    M libcxx/cmake/caches/s390x-ibm-zos-ascii.cmake
    M libcxx/cmake/caches/s390x-ibm-zos.cmake
    M libcxx/docs/BuildingLibcxx.rst
    M libcxx/docs/FeatureTestMacroTable.rst
    M libcxx/docs/ReleaseNotes/19.rst
    M libcxx/docs/Status/Cxx2c.rst
    M libcxx/docs/Status/Cxx2cIssues.csv
    M libcxx/docs/Status/Cxx2cPapers.csv
    M libcxx/docs/TestingLibcxx.rst
    M libcxx/include/CMakeLists.txt
    M libcxx/include/__chrono/year_month_day.h
    M libcxx/include/__configuration/abi.h
    M libcxx/include/__iterator/concepts.h
    M libcxx/include/__mutex/lock_guard.h
    M libcxx/include/__mutex/tag_types.h
    M libcxx/include/__ranges/iota_view.h
    M libcxx/include/__ranges/single_view.h
    M libcxx/include/__type_traits/add_pointer.h
    M libcxx/include/__type_traits/invoke.h
    M libcxx/include/__type_traits/is_fundamental.h
    R libcxx/include/__type_traits/is_member_function_pointer.h
    R libcxx/include/__type_traits/is_member_object_pointer.h
    M libcxx/include/__type_traits/is_member_pointer.h
    M libcxx/include/__type_traits/is_null_pointer.h
    M libcxx/include/__type_traits/is_scalar.h
    M libcxx/include/__type_traits/is_void.h
    M libcxx/include/__type_traits/make_signed.h
    M libcxx/include/__utility/rel_ops.h
    M libcxx/include/atomic
    M libcxx/include/expected
    M libcxx/include/filesystem
    M libcxx/include/format
    M libcxx/include/forward_list
    M libcxx/include/functional
    M libcxx/include/ios
    M libcxx/include/iterator
    M libcxx/include/mdspan
    M libcxx/include/memory
    M libcxx/include/memory_resource
    M libcxx/include/module.modulemap
    M libcxx/include/numeric
    M libcxx/include/ostream
    M libcxx/include/random
    M libcxx/include/ranges
    M libcxx/include/stop_token
    M libcxx/include/string
    M libcxx/include/string_view
    M libcxx/include/type_traits
    M libcxx/include/utility
    M libcxx/include/version
    M libcxx/modules/std/chrono.inc
    M libcxx/test/libcxx/containers/sequences/deque/abi.compile.pass.cpp
    M libcxx/test/libcxx/containers/sequences/list/abi.compile.pass.cpp
    A libcxx/test/libcxx/depr/depr.rel_ops/rel_ops.depr_in_cxx20.verify.cpp
    M libcxx/test/libcxx/iterators/bounded_iter/arithmetic.pass.cpp
    M libcxx/test/libcxx/iterators/bounded_iter/comparison.pass.cpp
    M libcxx/test/libcxx/iterators/bounded_iter/dereference.pass.cpp
    M libcxx/test/libcxx/iterators/bounded_iter/pointer_traits.pass.cpp
    M libcxx/test/libcxx/iterators/bounded_iter/types.compile.pass.cpp
    M libcxx/test/libcxx/memory/allocation_guard.pass.cpp
    M libcxx/test/libcxx/memory/compressed_pair/compressed_pair.pass.cpp
    M libcxx/test/libcxx/numerics/clamp_to_integral.pass.cpp
    M libcxx/test/libcxx/ranges/range.adaptors/range.adaptor.helpers/as-lvalue.lifetimebound.verify.cpp
    M libcxx/test/libcxx/ranges/range.adaptors/range.adaptor.helpers/as-lvalue.pass.cpp
    M libcxx/test/libcxx/transitive_includes/cxx03.csv
    M libcxx/test/libcxx/transitive_includes/cxx11.csv
    M libcxx/test/libcxx/transitive_includes/cxx14.csv
    M libcxx/test/libcxx/transitive_includes/cxx17.csv
    M libcxx/test/libcxx/transitive_includes/cxx20.csv
    M libcxx/test/libcxx/transitive_includes/cxx23.csv
    M libcxx/test/libcxx/transitive_includes/cxx26.csv
    M libcxx/test/libcxx/type_traits/is_callable.compile.pass.cpp
    M libcxx/test/libcxx/type_traits/is_constant_evaluated.pass.cpp
    M libcxx/test/libcxx/type_traits/is_implicitly_default_constructible.pass.cpp
    M libcxx/test/libcxx/type_traits/is_specialization.compile.pass.cpp
    M libcxx/test/libcxx/type_traits/is_specialization.verify.cpp
    M libcxx/test/libcxx/type_traits/lazy_metafunctions.pass.cpp
    M libcxx/test/libcxx/utilities/exception_guard.no_exceptions.pass.cpp
    M libcxx/test/libcxx/utilities/exception_guard.pass.cpp
    M libcxx/test/libcxx/utilities/function.objects/func.bind.partial/compose.pass.cpp
    M libcxx/test/libcxx/utilities/meta/meta_base.pass.cpp
    M libcxx/test/std/algorithms/alg.sorting/alg.heap.operations/make.heap/ranges_make_heap.pass.cpp
    M libcxx/test/std/algorithms/alg.sorting/alg.heap.operations/pop.heap/ranges_pop_heap.pass.cpp
    M libcxx/test/std/algorithms/alg.sorting/alg.heap.operations/push.heap/ranges_push_heap.pass.cpp
    M libcxx/test/std/containers/iterator.rel_ops.compile.pass.cpp
    A libcxx/test/std/input.output/iostream.format/std.manip/setfill_wchar_max.pass.cpp
    M libcxx/test/std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirect_binary_predicate.compile.pass.cpp
    M libcxx/test/std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirect_equivalence_relation.compile.pass.cpp
    M libcxx/test/std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirect_strict_weak_order.compile.pass.cpp
    M libcxx/test/std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirect_unary_predicate.compile.pass.cpp
    M libcxx/test/std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirectly_regular_unary_invocable.compile.pass.cpp
    M libcxx/test/std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirectly_unary_invocable.compile.pass.cpp
    M libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/sized_delete_array14.pass.cpp
    M libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete14.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/string.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/string_view.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
    M libcxx/test/std/ranges/range.adaptors/range.all/range.owning.view/begin_end.pass.cpp
    A libcxx/test/std/ranges/range.factories/range.iota.view/empty.pass.cpp
    M libcxx/test/std/ranges/range.factories/range.repeat.view/iterator/plus_eq.pass.cpp
    A libcxx/test/std/ranges/range.factories/range.single.view/empty.pass.cpp
    A libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string.string_view.pass.cpp
    R libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/adopt_lock.pass.cpp
    R libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/assign.compile.fail.cpp
    A libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/assign.compile.pass.cpp
    R libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/copy.compile.fail.cpp
    A libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/copy.compile.pass.cpp
    A libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/ctor.adopt_lock.pass.cpp
    A libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/ctor.mutex.pass.cpp
    M libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/implicit_ctad.pass.cpp
    R libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/mutex.pass.cpp
    R libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/mutex.verify.cpp
    A libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/std.mutex.pass.cpp
    A libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/types.compile.pass.cpp
    A libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/types.h
    R libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/types.pass.cpp
    M libcxx/test/std/time/time.cal/time.cal.ymdlast/time.cal.ymdlast.nonmembers/comparisons.pass.cpp
    M libcxx/test/std/utilities/utility/operators/rel_ops.pass.cpp
    M libcxx/test/support/test_iterators.h
    M libcxx/utils/generate_feature_test_macro_components.py
    M lld/COFF/Driver.cpp
    M lld/COFF/LTO.cpp
    M lld/ELF/Driver.cpp
    M lld/ELF/LinkerScript.h
    M lld/ELF/Relocations.cpp
    M lld/ELF/Relocations.h
    M lld/ELF/ScriptParser.cpp
    M lld/ELF/Writer.cpp
    M lld/MachO/Config.h
    M lld/MachO/Driver.cpp
    M lld/MachO/ObjC.cpp
    M lld/MachO/Options.td
    M lld/docs/ReleaseNotes.rst
    M lld/test/COFF/lib.test
    M lld/test/COFF/lto-emit-llvm.ll
    A lld/test/ELF/emulation-hexagon.s
    M lld/test/ELF/invalid-linkerscript.test
    A lld/test/ELF/linkerscript/nocrossrefs.test
    M lld/test/ELF/oformat-binary.s
    M lld/test/MachO/dead-strip.s
    M lld/test/MachO/icf-safe.ll
    M lld/test/MachO/implicit-and-allowable-clients.test
    M lld/test/MachO/link-search-at-rpath.s
    M lld/test/MachO/rpath.s
    M lld/test/wasm/dylink.s
    M lld/wasm/Driver.cpp
    M lld/wasm/InputFiles.cpp
    M lld/wasm/Options.td
    M lldb/docs/index.rst
    A lldb/docs/resources/qemu-testing.rst
    R lldb/docs/use/qemu-testing.rst
    M lldb/include/lldb/Core/EmulateInstruction.h
    M lldb/packages/Python/lldbsuite/test/lldbplatformutil.py
    M lldb/source/Commands/CommandObjectProcess.cpp
    M lldb/source/Core/DynamicLoader.cpp
    M lldb/source/Plugins/ABI/RISCV/ABISysV_riscv.cpp
    M lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
    M lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.h
    M lldb/source/Plugins/Instruction/RISCV/EmulateInstructionRISCV.cpp
    M lldb/source/Plugins/Instruction/RISCV/EmulateInstructionRISCV.h
    M lldb/source/Plugins/Process/Utility/NativeProcessSoftwareSingleStep.cpp
    M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp
    M lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
    M lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.h
    M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
    M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h
    M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.h
    M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.cpp
    M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.h
    M lldb/source/Plugins/SymbolFile/DWARF/UniqueDWARFASTType.cpp
    M lldb/source/Plugins/SymbolFile/DWARF/UniqueDWARFASTType.h
    M lldb/source/Target/Process.cpp
    M lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx-simulators/unique_ptr/main.cpp
    M lldb/test/API/functionalities/load_unload/TestLoadUnload.py
    A lldb/test/API/riscv/break-undecoded/Makefile
    A lldb/test/API/riscv/break-undecoded/TestBreakpointIllegal.py
    A lldb/test/API/riscv/break-undecoded/compressed.c
    A lldb/test/API/riscv/break-undecoded/main.c
    M lldb/test/API/tools/lldb-dap/stepInTargets/TestDAP_stepInTargets.py
    M lldb/test/API/tools/lldb-dap/stepInTargets/main.cpp
    M lldb/test/Shell/Recognizer/verbose_trap.test
    A lldb/test/Shell/SymbolFile/DWARF/delayed-definition-die-searching.test
    R lldb/test/Shell/SymbolFile/DWARF/x86/simple-template-names-context.cpp
    A lldb/test/Shell/SymbolFile/DWARF/x86/type-definition-search.cpp
    M lldb/tools/lldb-server/lldb-platform.cpp
    A llvm/docs/DirectX/DXILResources.rst
    M llvm/docs/DirectXUsage.rst
    M llvm/docs/GlobalISel/GenericOpcode.rst
    M llvm/docs/LangRef.rst
    M llvm/docs/MyFirstTypoFix.rst
    M llvm/docs/RISCVUsage.rst
    M llvm/docs/ReleaseNotes.rst
    M llvm/docs/SandboxIR.md
    M llvm/include/llvm-c/Core.h
    M llvm/include/llvm/ADT/APFloat.h
    M llvm/include/llvm/ADT/SetOperations.h
    M llvm/include/llvm/Analysis/TargetTransformInfo.h
    M llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
    M llvm/include/llvm/Analysis/ValueTracking.h
    M llvm/include/llvm/Analysis/VectorUtils.h
    M llvm/include/llvm/CodeGen/Analysis.h
    M llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
    M llvm/include/llvm/CodeGen/ISDOpcodes.h
    M llvm/include/llvm/CodeGen/MachineBasicBlock.h
    A llvm/include/llvm/CodeGen/PHIElimination.h
    A llvm/include/llvm/CodeGen/RuntimeLibcallUtil.h
    R llvm/include/llvm/CodeGen/RuntimeLibcalls.h
    M llvm/include/llvm/CodeGen/SelectionDAG.h
    M llvm/include/llvm/CodeGen/TargetLowering.h
    M llvm/include/llvm/DebugInfo/DWARF/DWARFFormValue.h
    M llvm/include/llvm/Demangle/MicrosoftDemangle.h
    M llvm/include/llvm/Frontend/OpenMP/OMP.td
    M llvm/include/llvm/IR/IntrinsicInst.h
    M llvm/include/llvm/IR/Intrinsics.td
    M llvm/include/llvm/IR/IntrinsicsX86.td
    M llvm/include/llvm/IR/PatternMatch.h
    A llvm/include/llvm/IR/RuntimeLibcalls.h
    M llvm/include/llvm/IR/VPIntrinsics.def
    M llvm/include/llvm/IR/Value.def
    M llvm/include/llvm/IR/VectorBuilder.h
    M llvm/include/llvm/LTO/LTO.h
    M llvm/include/llvm/Passes/CodeGenPassBuilder.h
    M llvm/include/llvm/Passes/MachinePassRegistry.def
    M llvm/include/llvm/ProfileData/SampleProf.h
    M llvm/include/llvm/SandboxIR/SandboxIR.h
    A llvm/include/llvm/SandboxIR/Tracker.h
    A llvm/include/llvm/SandboxIR/Use.h
    M llvm/include/llvm/Support/DXILABI.h
    M llvm/include/llvm/Support/GenericIteratedDominanceFrontier.h
    M llvm/include/llvm/Support/TargetOpcodes.def
    M llvm/include/llvm/Target/GenericOpcodes.td
    M llvm/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
    M llvm/include/llvm/Target/TargetSelectionDAG.td
    M llvm/include/llvm/TargetParser/Triple.h
    M llvm/include/llvm/Transforms/IPO/SampleProfileMatcher.h
    A llvm/include/llvm/Transforms/Utils/DXILResource.h
    M llvm/include/llvm/Transforms/Utils/LoopUtils.h
    M llvm/include/llvm/Transforms/Utils/SampleProfileLoaderBaseImpl.h
    M llvm/include/llvm/Transforms/Vectorize/LoopVectorize.h
    M llvm/lib/Analysis/InstructionSimplify.cpp
    M llvm/lib/Analysis/Lint.cpp
    M llvm/lib/Analysis/TargetTransformInfo.cpp
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/lib/Analysis/VectorUtils.cpp
    M llvm/lib/CodeGen/Analysis.cpp
    M llvm/lib/CodeGen/AtomicExpandPass.cpp
    M llvm/lib/CodeGen/DwarfEHPrepare.cpp
    M llvm/lib/CodeGen/ExpandReductions.cpp
    M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
    M llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
    M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
    M llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp
    M llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h
    M llvm/lib/CodeGen/MachineBasicBlock.cpp
    M llvm/lib/CodeGen/MachineSink.cpp
    M llvm/lib/CodeGen/PHIElimination.cpp
    M llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    M llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
    M llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
    M llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
    M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
    M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.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/SelectionDAGISel.cpp
    M llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp
    M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
    M llvm/lib/CodeGen/TargetLoweringBase.cpp
    M llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp
    M llvm/lib/DWARFLinker/Parallel/DWARFLinkerCompileUnit.cpp
    M llvm/lib/DebugInfo/DWARF/DWARFDie.cpp
    M llvm/lib/DebugInfo/DWARF/DWARFFormValue.cpp
    M llvm/lib/DebugInfo/DWARF/DWARFVerifier.cpp
    M llvm/lib/DebugInfo/LogicalView/Readers/LVDWARFReader.cpp
    M llvm/lib/IR/CMakeLists.txt
    M llvm/lib/IR/Core.cpp
    M llvm/lib/IR/IntrinsicInst.cpp
    A llvm/lib/IR/RuntimeLibcalls.cpp
    M llvm/lib/IR/VectorBuilder.cpp
    M llvm/lib/LTO/LTO.cpp
    M llvm/lib/MC/MCAsmStreamer.cpp
    M llvm/lib/MC/MCParser/AsmLexer.cpp
    M llvm/lib/MC/MCParser/AsmParser.cpp
    M llvm/lib/MC/MachObjectWriter.cpp
    M llvm/lib/Object/COFFImportFile.cpp
    M llvm/lib/Object/COFFModuleDefinition.cpp
    M llvm/lib/Object/IRSymtab.cpp
    M llvm/lib/Passes/PassBuilder.cpp
    M llvm/lib/ProfileData/SampleProf.cpp
    M llvm/lib/SandboxIR/CMakeLists.txt
    M llvm/lib/SandboxIR/SandboxIR.cpp
    A llvm/lib/SandboxIR/Tracker.cpp
    M llvm/lib/Support/APFloat.cpp
    M llvm/lib/Target/AArch64/AArch64FastISel.cpp
    M llvm/lib/Target/AArch64/AArch64Features.td
    M llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
    M llvm/lib/Target/AArch64/AArch64FrameLowering.h
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/lib/Target/AArch64/AArch64ISelLowering.h
    M llvm/lib/Target/AArch64/AArch64MIPeepholeOpt.cpp
    M llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h
    M llvm/lib/Target/AArch64/AArch64Processors.td
    M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
    M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h
    M llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
    M llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
    R llvm/lib/Target/AArch64/peephole-sxtw.mir
    M llvm/lib/Target/AMDGPU/AMDGPU.td
    M llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUAttributor.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUCallLowering.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUIGroupLP.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.h
    M llvm/lib/Target/AMDGPU/AMDGPULibCalls.cpp
    M llvm/lib/Target/AMDGPU/AMDGPULibFunc.cpp
    M llvm/lib/Target/AMDGPU/AMDGPULowerBufferFatPointers.cpp
    M llvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUMachineCFGStructurizer.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUMachineFunction.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUPerfHintAnalysis.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUPrintfRuntimeBinding.cpp
    M llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
    M llvm/lib/Target/AMDGPU/AMDGPURemoveIncompatibleFunctions.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUResourceUsageAnalysis.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUSplitModule.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h
    M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUUnifyDivergentExitNodes.cpp
    M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
    M llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
    M llvm/lib/Target/AMDGPU/GCNCreateVOPD.cpp
    M llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp
    M llvm/lib/Target/AMDGPU/GCNILPSched.cpp
    M llvm/lib/Target/AMDGPU/GCNIterativeScheduler.cpp
    M llvm/lib/Target/AMDGPU/GCNNSAReassign.cpp
    M llvm/lib/Target/AMDGPU/GCNRewritePartialRegUses.cpp
    M llvm/lib/Target/AMDGPU/MCA/AMDGPUCustomBehaviour.cpp
    M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUELFStreamer.cpp
    M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp
    M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.cpp
    M llvm/lib/Target/AMDGPU/MCTargetDesc/R600MCCodeEmitter.cpp
    M llvm/lib/Target/AMDGPU/R600ControlFlowFinalizer.cpp
    M llvm/lib/Target/AMDGPU/R600EmitClauseMarkers.cpp
    M llvm/lib/Target/AMDGPU/R600ISelDAGToDAG.cpp
    M llvm/lib/Target/AMDGPU/R600ISelLowering.cpp
    M llvm/lib/Target/AMDGPU/R600InstrInfo.cpp
    M llvm/lib/Target/AMDGPU/R600MachineCFGStructurizer.cpp
    M llvm/lib/Target/AMDGPU/R600MachineScheduler.cpp
    M llvm/lib/Target/AMDGPU/R600OpenCLImageTypeLoweringPass.cpp
    M llvm/lib/Target/AMDGPU/R600OptimizeVectorRegisters.cpp
    M llvm/lib/Target/AMDGPU/SIFixSGPRCopies.cpp
    M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
    M llvm/lib/Target/AMDGPU/SIFormMemoryClauses.cpp
    M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
    M llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
    M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
    M llvm/lib/Target/AMDGPU/SIInstrInfo.h
    M llvm/lib/Target/AMDGPU/SIInstructions.td
    M llvm/lib/Target/AMDGPU/SILowerSGPRSpills.cpp
    M llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp
    M llvm/lib/Target/AMDGPU/SIMachineScheduler.cpp
    M llvm/lib/Target/AMDGPU/SIMemoryLegalizer.cpp
    M llvm/lib/Target/AMDGPU/SIOptimizeExecMasking.cpp
    M llvm/lib/Target/AMDGPU/SIPeepholeSDWA.cpp
    M llvm/lib/Target/AMDGPU/SIWholeQuadMode.cpp
    M llvm/lib/Target/AMDGPU/Utils/AMDGPUAsmUtils.cpp
    M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
    M llvm/lib/Target/AMDGPU/Utils/AMDGPUDelayedMCExpr.cpp
    M llvm/lib/Target/AMDGPU/Utils/AMDGPUMemoryUtils.cpp
    M llvm/lib/Target/ARC/ARCISelLowering.cpp
    M llvm/lib/Target/ARM/ARMFastISel.cpp
    M llvm/lib/Target/ARM/ARMFrameLowering.cpp
    M llvm/lib/Target/ARM/ARMISelLowering.cpp
    M llvm/lib/Target/ARM/ARMLegalizerInfo.h
    M llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp
    M llvm/lib/Target/ARM/ARMSelectionDAGInfo.h
    M llvm/lib/Target/CSKY/CSKYISelLowering.cpp
    M llvm/lib/Target/Hexagon/HexagonBitSimplify.cpp
    M llvm/lib/Target/Hexagon/HexagonGenInsert.cpp
    M llvm/lib/Target/Hexagon/HexagonISelLowering.cpp
    M llvm/lib/Target/Lanai/LanaiISelLowering.cpp
    M llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
    M llvm/lib/Target/LoongArch/LoongArchTargetMachine.cpp
    M llvm/lib/Target/M68k/M68kISelLowering.cpp
    M llvm/lib/Target/MSP430/MSP430ISelLowering.cpp
    M llvm/lib/Target/Mips/MipsFastISel.cpp
    M llvm/lib/Target/Mips/MipsISelLowering.cpp
    M llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp
    M llvm/lib/Target/NVPTX/NVPTXInstrInfo.td
    M llvm/lib/Target/PowerPC/PPCEarlyReturn.cpp
    M llvm/lib/Target/PowerPC/PPCFastISel.cpp
    M llvm/lib/Target/PowerPC/PPCISelLowering.cpp
    M llvm/lib/Target/PowerPC/PPCMIPeephole.cpp
    M llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCTargetDesc.h
    M llvm/lib/Target/RISCV/MCTargetDesc/RISCVMatInt.cpp
    M llvm/lib/Target/RISCV/MCTargetDesc/RISCVMatInt.h
    M llvm/lib/Target/RISCV/RISCVCodeGenPrepare.cpp
    M llvm/lib/Target/RISCV/RISCVFeatures.td
    M llvm/lib/Target/RISCV/RISCVISelDAGToDAG.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.h
    M llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td
    M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
    M llvm/lib/Target/Sparc/SparcISelLowering.cpp
    M llvm/lib/Target/SystemZ/SystemZISelLowering.cpp
    M llvm/lib/Target/SystemZ/SystemZISelLowering.h
    M llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyRegColoring.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.h
    M llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.h
    M llvm/lib/Target/X86/X86.td
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/lib/Target/X86/X86ISelLoweringCall.cpp
    M llvm/lib/Target/X86/X86Instr3DNow.td
    M llvm/lib/Target/X86/X86InstrPredicates.td
    M llvm/lib/Target/X86/X86SelectionDAGInfo.cpp
    M llvm/lib/Target/X86/X86Subtarget.cpp
    M llvm/lib/Target/X86/X86Subtarget.h
    M llvm/lib/Target/XCore/XCoreISelLowering.cpp
    M llvm/lib/Target/XCore/XCoreLowerThreadLocal.cpp
    M llvm/lib/Target/Xtensa/XtensaISelLowering.cpp
    M llvm/lib/TargetParser/Triple.cpp
    M llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp
    M llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp
    M llvm/lib/Transforms/IPO/SampleProfile.cpp
    M llvm/lib/Transforms/IPO/SampleProfileMatcher.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
    M llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
    M llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
    M llvm/lib/Transforms/Scalar/LoopRotation.cpp
    M llvm/lib/Transforms/Scalar/SROA.cpp
    M llvm/lib/Transforms/Utils/CMakeLists.txt
    A llvm/lib/Transforms/Utils/DXILResource.cpp
    M llvm/lib/Transforms/Utils/LoopUtils.cpp
    M llvm/lib/Transforms/Utils/SCCPSolver.cpp
    M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/lib/Transforms/Vectorize/VPlan.h
    M llvm/lib/Transforms/Vectorize/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/Analysis/CostModel/AArch64/no-sve-no-neon.ll
    M llvm/test/Analysis/LoopAccessAnalysis/load-store-index-loaded-in-loop.ll
    A llvm/test/Analysis/ValueTracking/known-bits.ll
    A llvm/test/Analysis/ValueTracking/known-fpclass.ll
    M llvm/test/Analysis/ValueTracking/known-non-zero.ll
    A llvm/test/Analysis/ValueTracking/knownbits-x86-hadd-hsub.ll
    M llvm/test/Bindings/llvm-c/echo.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/combine-udiv.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/combine-udiv.mir
    A llvm/test/CodeGen/AArch64/GlobalISel/legalize-vector-compress.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/load-addressing-modes.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/store-addressing-modes.mir
    M llvm/test/CodeGen/AArch64/PHIElimination-crash.mir
    M llvm/test/CodeGen/AArch64/PHIElimination-debugloc.mir
    M llvm/test/CodeGen/AArch64/aarch64-fold-lslfast.ll
    M llvm/test/CodeGen/AArch64/aarch64-mull-masks.ll
    M llvm/test/CodeGen/AArch64/cmp-to-cmn.ll
    A llvm/test/CodeGen/AArch64/no-tail-call-bzero-from-memset.ll
    A llvm/test/CodeGen/AArch64/stack-hazard.ll
    M llvm/test/CodeGen/AArch64/typepromotion-overflow.ll
    A llvm/test/CodeGen/AArch64/vector-compress.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/atomicrmw_fmax.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/atomicrmw_fmin.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/mubuf-global.ll
    M llvm/test/CodeGen/AMDGPU/atomic_optimizations_global_pointer.ll
    M llvm/test/CodeGen/AMDGPU/atomicrmw-expand.ll
    M llvm/test/CodeGen/AMDGPU/buffer-fat-pointer-atomicrmw-fadd.ll
    M llvm/test/CodeGen/AMDGPU/buffer-fat-pointer-atomicrmw-fmax.ll
    M llvm/test/CodeGen/AMDGPU/buffer-fat-pointer-atomicrmw-fmin.ll
    M llvm/test/CodeGen/AMDGPU/check-subtarget-features.ll
    M llvm/test/CodeGen/AMDGPU/flat-atomicrmw-fadd.ll
    M llvm/test/CodeGen/AMDGPU/flat-atomicrmw-fmax.ll
    M llvm/test/CodeGen/AMDGPU/flat-atomicrmw-fmin.ll
    M llvm/test/CodeGen/AMDGPU/flat-atomicrmw-fsub.ll
    M llvm/test/CodeGen/AMDGPU/flat_atomics_i64.ll
    M llvm/test/CodeGen/AMDGPU/fp-atomics-gfx1200.ll
    M llvm/test/CodeGen/AMDGPU/fp-atomics-gfx940.ll
    A llvm/test/CodeGen/AMDGPU/global-alias.ll
    M llvm/test/CodeGen/AMDGPU/global-atomicrmw-fadd.ll
    M llvm/test/CodeGen/AMDGPU/global-atomicrmw-fmax.ll
    M llvm/test/CodeGen/AMDGPU/global-atomicrmw-fmin.ll
    M llvm/test/CodeGen/AMDGPU/global-atomicrmw-fsub.ll
    M llvm/test/CodeGen/AMDGPU/global-saddr-load.ll
    M llvm/test/CodeGen/AMDGPU/global-saddr-store.ll
    M llvm/test/CodeGen/AMDGPU/global_atomics_i64.ll
    M llvm/test/CodeGen/AMDGPU/indirect-addressing-si.ll
    M llvm/test/CodeGen/AMDGPU/insert-skips-gfx10.mir
    M llvm/test/CodeGen/AMDGPU/insert-skips-gfx12.mir
    M llvm/test/CodeGen/AMDGPU/insert_waitcnt_for_precise_memory.ll
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.wavefrontsize.ll
    M llvm/test/CodeGen/AMDGPU/local-atomicrmw-fadd.ll
    M llvm/test/CodeGen/AMDGPU/local-atomicrmw-fmax.ll
    M llvm/test/CodeGen/AMDGPU/local-atomicrmw-fmin.ll
    M llvm/test/CodeGen/AMDGPU/local-atomicrmw-fsub.ll
    M llvm/test/CodeGen/AMDGPU/memory-legalizer-fence-mmra-global.ll
    M llvm/test/CodeGen/AMDGPU/memory-legalizer-fence-mmra-local.ll
    M llvm/test/CodeGen/AMDGPU/memory-legalizer-fence.ll
    M llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-agent.ll
    M llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-system.ll
    M llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-volatile.ll
    M llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-workgroup.ll
    M llvm/test/CodeGen/AMDGPU/memory-legalizer-global-agent.ll
    M llvm/test/CodeGen/AMDGPU/memory-legalizer-global-system.ll
    M llvm/test/CodeGen/AMDGPU/memory-legalizer-global-volatile.ll
    M llvm/test/CodeGen/AMDGPU/memory-legalizer-global-workgroup.ll
    M llvm/test/CodeGen/AMDGPU/memory-legalizer-local-agent.ll
    M llvm/test/CodeGen/AMDGPU/memory-legalizer-local-system.ll
    M llvm/test/CodeGen/AMDGPU/memory-legalizer-local-volatile.ll
    M llvm/test/CodeGen/AMDGPU/memory-legalizer-local-workgroup.ll
    M llvm/test/CodeGen/AMDGPU/phi-elimination-assertion.mir
    M llvm/test/CodeGen/AMDGPU/phi-elimination-end-cf.mir
    M llvm/test/CodeGen/AMDGPU/split-mbb-lis-subrange.mir
    M llvm/test/CodeGen/AMDGPU/stale-livevar-in-twoaddr-pass.mir
    M llvm/test/CodeGen/AMDGPU/unknown-processor.ll
    A llvm/test/CodeGen/ARM/scmp.ll
    A llvm/test/CodeGen/ARM/ucmp.ll
    M llvm/test/CodeGen/LoongArch/andn-icmp.ll
    M llvm/test/CodeGen/LoongArch/opt-pipeline.ll
    A llvm/test/CodeGen/LoongArch/scmp.ll
    M llvm/test/CodeGen/LoongArch/typepromotion-overflow.ll
    A llvm/test/CodeGen/LoongArch/ucmp.ll
    A llvm/test/CodeGen/NVPTX/rcp-opt.ll
    M llvm/test/CodeGen/PowerPC/2013-07-01-PHIElimBug.mir
    M llvm/test/CodeGen/PowerPC/livevars-crash1.mir
    M llvm/test/CodeGen/PowerPC/livevars-crash2.mir
    A llvm/test/CodeGen/PowerPC/peephole-combineRLWINM-liveness.mir
    M llvm/test/CodeGen/PowerPC/phi-eliminate.mir
    A llvm/test/CodeGen/PowerPC/scmp.ll
    M llvm/test/CodeGen/PowerPC/two-address-crash.mir
    A llvm/test/CodeGen/PowerPC/ucmp.ll
    M llvm/test/CodeGen/RISCV/attributes.ll
    M llvm/test/CodeGen/RISCV/fastcc-int.ll
    M llvm/test/CodeGen/RISCV/fastcc-without-f-reg.ll
    M llvm/test/CodeGen/RISCV/rvv/calling-conv-fastcc.ll
    M llvm/test/CodeGen/RISCV/rvv/combine-vmv.ll
    M llvm/test/CodeGen/RISCV/rvv/ctlz-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/cttz-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-calling-conv-fastcc.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-ctlz.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-cttz.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-shuffle-rotate.ll
    A llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vp-splat.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vrol.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vror.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vwadd.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vwmul.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vwsll.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vwsub.ll
    M llvm/test/CodeGen/RISCV/rvv/rvv-peephole-vmerge-vops.ll
    A llvm/test/CodeGen/RISCV/rvv/vp-splat.ll
    M llvm/test/CodeGen/RISCV/rvv/vrol-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vror-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vwadd-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vwsll-sdnode.ll
    A llvm/test/CodeGen/RISCV/scmp.ll
    A llvm/test/CodeGen/RISCV/sink-and-fold-crash.mir
    A llvm/test/CodeGen/RISCV/ucmp.ll
    A llvm/test/CodeGen/SystemZ/scmp.ll
    A llvm/test/CodeGen/SystemZ/ucmp.ll
    A llvm/test/CodeGen/Thumb/scmp.ll
    A llvm/test/CodeGen/Thumb/ucmp.ll
    M llvm/test/CodeGen/Thumb2/phi_prevent_copy.mir
    A llvm/test/CodeGen/WebAssembly/scmp.ll
    A llvm/test/CodeGen/WebAssembly/ucmp.ll
    A llvm/test/CodeGen/WebAssembly/vector-reduce.ll
    R llvm/test/CodeGen/X86/3dnow-intrinsics.ll
    M llvm/test/CodeGen/X86/callbr-asm-kill.mir
    R llvm/test/CodeGen/X86/commute-3dnow.ll
    M llvm/test/CodeGen/X86/expand-vr64-gr64-copy.mir
    A llvm/test/CodeGen/X86/global-with-max-align.ll
    M llvm/test/CodeGen/X86/inline-asm-memop.ll
    A llvm/test/CodeGen/X86/knownbits-hadd-hsub.ll
    M llvm/test/CodeGen/X86/oddshuffles.ll
    M llvm/test/CodeGen/X86/phielim-undef.mir
    M llvm/test/CodeGen/X86/pr35982.ll
    M llvm/test/CodeGen/X86/pr53247.ll
    M llvm/test/CodeGen/X86/prefetch.ll
    M llvm/test/CodeGen/X86/scmp.ll
    M llvm/test/CodeGen/X86/shuffle-strided-with-offset-512.ll
    M llvm/test/CodeGen/X86/shuffle-vs-trunc-512.ll
    R llvm/test/CodeGen/X86/stack-folding-3dnow.ll
    M llvm/test/CodeGen/X86/ucmp.ll
    A llvm/test/CodeGen/X86/udiv-exact.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i16-stride-2.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-i8-stride-2.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-i8-stride-6.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i8-stride-8.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/vselect-avx.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/sroa/var-sized-fragment.ll
    A llvm/test/DebugInfo/Generic/sroa-alloca-offset.ll
    A llvm/test/Instrumentation/MemorySanitizer/AArch64/neon_vst.ll
    M llvm/test/MC/AMDGPU/expressions-gfx10.s
    M llvm/test/MC/AMDGPU/gfx1013.s
    M llvm/test/MC/AMDGPU/gfx1030_unsupported.s
    M llvm/test/MC/AMDGPU/gfx10_asm_dpp16.s
    M llvm/test/MC/AMDGPU/gfx10_asm_dpp8.s
    M llvm/test/MC/AMDGPU/gfx10_asm_ds.s
    M llvm/test/MC/AMDGPU/gfx10_asm_err.s
    M llvm/test/MC/AMDGPU/gfx10_asm_flat.s
    M llvm/test/MC/AMDGPU/gfx10_asm_mubuf.s
    M llvm/test/MC/AMDGPU/gfx10_asm_smem.s
    M llvm/test/MC/AMDGPU/gfx10_asm_sop.s
    M llvm/test/MC/AMDGPU/gfx10_asm_vop1.s
    M llvm/test/MC/AMDGPU/gfx10_asm_vop2.s
    M llvm/test/MC/AMDGPU/gfx10_asm_vop3.s
    M llvm/test/MC/AMDGPU/gfx10_asm_vopc.s
    M llvm/test/MC/AMDGPU/gfx10_asm_vopc_e64.s
    M llvm/test/MC/AMDGPU/gfx10_asm_vopc_sdwa.s
    M llvm/test/MC/AMDGPU/gfx10_asm_vopcx.s
    M llvm/test/MC/AMDGPU/gfx10_unsupported.s
    M llvm/test/MC/AMDGPU/gfx10_unsupported_dpp.s
    M llvm/test/MC/AMDGPU/gfx10_unsupported_e32.s
    M llvm/test/MC/AMDGPU/gfx10_unsupported_e64.s
    M llvm/test/MC/AMDGPU/gfx10_unsupported_e64_dpp.s
    M llvm/test/MC/AMDGPU/gfx10_unsupported_sdwa.s
    M llvm/test/MC/AMDGPU/gfx11-promotions.s
    M llvm/test/MC/AMDGPU/gfx11_asm_flat.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop1-fake16.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop1.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop1_dpp16-fake16.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop1_dpp16.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop1_dpp8-fake16.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop1_dpp8.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop1_t16_err-fake16.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop1_t16_err.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop1_t16_promote.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop2.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop2_dpp16.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop2_dpp8.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop2_t16_err.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop2_t16_promote.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop3.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop3_alias.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp16.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp16_from_vop1-fake16.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp16_from_vop1.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp16_from_vop2.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp16_from_vopc.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp16_from_vopcx.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp8.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp8_from_vop1-fake16.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp8_from_vop1.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp8_from_vop2.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp8_from_vopc.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp8_from_vopcx.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop3_err.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop3_from_vop1.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop3_from_vop2.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop3_from_vopc.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop3_from_vopcx.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop3p_dpp16.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop3p_dpp8.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vopc.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vopc_dpp16.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vopc_dpp8.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vopc_t16_promote.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vopcx.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vopcx_dpp16.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vopcx_dpp8.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vopd.s
    M llvm/test/MC/AMDGPU/gfx11_asm_wmma.s
    M llvm/test/MC/AMDGPU/gfx11_unsupported.s
    M llvm/test/MC/AMDGPU/gfx11_unsupported_dpp.s
    M llvm/test/MC/AMDGPU/gfx11_unsupported_e32.s
    M llvm/test/MC/AMDGPU/gfx11_unsupported_e64.s
    M llvm/test/MC/AMDGPU/gfx11_unsupported_sdwa-fake16.s
    M llvm/test/MC/AMDGPU/gfx11_unsupported_sdwa.s
    M llvm/test/MC/AMDGPU/gfx12_asm_global_load_tr.s
    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_vop2.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop2_aliases.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop2_dpp16.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop2_dpp8.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop3.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop3_aliases.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_err.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/AMDGPU/gfx12_asm_vop3_from_vop2.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop3_from_vop2_dpp16.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop3_from_vop2_dpp8.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop3c.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop3c_dpp16.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop3c_dpp8.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop3cx.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop3cx_dpp16.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop3cx_dpp8.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop3p_aliases.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop3p_dpp16.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop3p_dpp8.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vopc.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vopc_dpp16.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vopc_dpp8.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vopc_t16_promote.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vopcx.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vopcx_dpp16.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vopcx_dpp8.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vopd.s
    M llvm/test/MC/AMDGPU/gfx12_asm_wmma_w64.s
    M llvm/test/MC/AMDGPU/vop3-literal.s
    M llvm/test/MC/AMDGPU/wave32.s
    M llvm/test/MC/Disassembler/AMDGPU/gfx10-wave32.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx10_ds.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx10_flat.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx10_mubuf.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx10_smem.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx10_sop1.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx10_sop2.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx10_sopc.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx10_sopk.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx10_sopp.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx10_vop1.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx10_vop1_dpp16.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx10_vop1_dpp8.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx10_vop1_sdwa.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx10_vop2.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx10_vop2_dpp16.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx10_vop2_dpp8.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx10_vop2_sdwa.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx10_vop3.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx10_vop3c.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx10_vop3cx.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx10_vopc.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx10_vopc_sdwa.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx10_vopcx.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx10_vopcx_sdwa.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_dpp16.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_dpp16_from_vop2.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_dpp8.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_dpp8_from_vop2.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_from_vop1.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_from_vop2.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vopc.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vopc_dpp16.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vopc_dpp8.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vopcx.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vopcx_dpp16.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vopcx_dpp8.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vopd.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_wmma.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_global_load_tr.txt
    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_vop2.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop2_dpp16.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop2_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_vop2.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3_from_vop2_dpp16.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3_from_vop2_dpp8.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3c.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3c_dpp16.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3c_dpp8.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3cx.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3cx_dpp16.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3cx_dpp8.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3p.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3p_dpp16.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3p_dpp8.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vopc.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vopc_dpp16.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vopc_dpp8.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vopcx.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vopcx_dpp16.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vopcx_dpp8.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vopd.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_wmma_w64.txt
    A llvm/test/MC/ELF/warn-newline-in-escaped-string.s
    A llvm/test/MC/MachO/section-offset-overflow.s
    M llvm/test/MC/RISCV/XTHeadVdot-valid.s
    M llvm/test/MC/RISCV/attribute-arch.s
    M llvm/test/MachineVerifier/test_g_extract_subvector.mir
    M llvm/test/MachineVerifier/test_g_insert_subvector.mir
    M llvm/test/MachineVerifier/test_g_vscale.mir
    M llvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll
    M llvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll
    A llvm/test/Transforms/AggressiveInstCombine/memchr.ll
    M llvm/test/Transforms/ConstantHoisting/RISCV/immediates.ll
    M llvm/test/Transforms/CorrelatedValuePropagation/vectors.ll
    A llvm/test/Transforms/InstCombine/AMDGPU/select-from-load.ll
    M llvm/test/Transforms/InstCombine/ashr-demand.ll
    A llvm/test/Transforms/InstCombine/select-of-symmetric-selects.ll
    M llvm/test/Transforms/InstCombine/vector-logical-reductions.ll
    M llvm/test/Transforms/InstSimplify/and-or-implied-cond.ll
    A llvm/test/Transforms/LoopIdiom/AArch64/ctlz.ll
    A llvm/test/Transforms/LoopRotate/minsize-disable.ll
    A llvm/test/Transforms/LoopVectorize/AArch64/prefer-fixed-if-equal-to-scalable.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-inductions-unusual-types.ll
    M llvm/test/Transforms/LoopVectorize/PowerPC/vplan-force-tail-with-evl.ll
    M llvm/test/Transforms/LoopVectorize/RISCV/inloop-reduction.ll
    A llvm/test/Transforms/LoopVectorize/RISCV/vectorize-force-tail-with-evl-cond-reduction.ll
    A llvm/test/Transforms/LoopVectorize/RISCV/vectorize-force-tail-with-evl-inloop-reduction.ll
    A llvm/test/Transforms/LoopVectorize/RISCV/vectorize-force-tail-with-evl-intermediate-store.ll
    A llvm/test/Transforms/LoopVectorize/RISCV/vectorize-force-tail-with-evl-ordered-reduction.ll
    A llvm/test/Transforms/LoopVectorize/RISCV/vectorize-force-tail-with-evl-reduction.ll
    A llvm/test/Transforms/LoopVectorize/RISCV/vplan-vp-intrinsics-reduction.ll
    M llvm/test/Transforms/LoopVectorize/X86/interleave-cost.ll
    A llvm/test/Transforms/PhaseOrdering/pr98799-inline-simplifycfg-ub.ll
    A llvm/test/Transforms/PreISelIntrinsicLowering/X86/memcpy-inline-non-constant-len.ll
    M llvm/test/Transforms/SCCP/phis.ll
    A llvm/test/Transforms/SCCP/preserving-debugloc-signedinst-branch-feasible-succ.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/extractelements-to-shuffle.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/scalarization-overhead.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/remarks_cmp_sel_min_max.ll
    M llvm/test/Transforms/SLPVectorizer/X86/int-bitcast-minbitwidth.ll
    M llvm/test/Transforms/SLPVectorizer/X86/minbitwidth-transformed-operand.ll
    M llvm/test/Transforms/SLPVectorizer/X86/partail.ll
    M llvm/test/Transforms/SLPVectorizer/X86/resched.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reused-extractelements.ll
    M llvm/test/Transforms/SLPVectorizer/X86/shuffle-multivector.ll
    A llvm/test/Transforms/SLPVectorizer/revec-fix-99411.ll
    A llvm/test/Transforms/SLPVectorizer/revec.ll
    A llvm/test/Transforms/SampleProfile/Inputs/pseudo-probe-stale-profile-renaming-recursive.prof
    A llvm/test/Transforms/SampleProfile/Inputs/pseudo-probe-stale-profile-renaming.prof
    M llvm/test/Transforms/SampleProfile/non-probe-stale-profile-matching.ll
    M llvm/test/Transforms/SampleProfile/pseudo-probe-stale-profile-matching-LCS.ll
    A llvm/test/Transforms/SampleProfile/pseudo-probe-stale-profile-renaming-recursive.ll
    A llvm/test/Transforms/SampleProfile/pseudo-probe-stale-profile-renaming.ll
    M llvm/test/Transforms/SimplifyCFG/UnreachableEliminate.ll
    M llvm/test/Verifier/intrinsic-immarg.ll
    M llvm/test/tools/llvm-dlltool/coff-decorated.def
    M llvm/test/tools/llvm-dlltool/coff-weak-exports.def
    A llvm/test/tools/llvm-dlltool/renaming.def
    M llvm/test/tools/llvm-readobj/ELF/ARM/attribute-big-endian.test
    M llvm/tools/llvm-c-test/echo.cpp
    M llvm/tools/lto/lto.cpp
    M llvm/unittests/ADT/APFloatTest.cpp
    M llvm/unittests/Analysis/VectorUtilsTest.cpp
    M llvm/unittests/DebugInfo/DWARF/DWARFDebugInfoTest.cpp
    M llvm/unittests/IR/VPIntrinsicTest.cpp
    M llvm/unittests/ProfileData/PGOCtxProfReaderWriterTest.cpp
    M llvm/unittests/SandboxIR/CMakeLists.txt
    M llvm/unittests/SandboxIR/SandboxIRTest.cpp
    A llvm/unittests/SandboxIR/TrackerTest.cpp
    M llvm/unittests/TargetParser/RISCVISAInfoTest.cpp
    M llvm/unittests/Transforms/Utils/CMakeLists.txt
    A llvm/unittests/Transforms/Utils/DXILResourceTest.cpp
    M llvm/unittests/Transforms/Vectorize/VPlanTest.cpp
    M llvm/utils/emacs/llvm-mir-mode.el
    M llvm/utils/gn/secondary/clang-tools-extra/clangd/BUILD.gn
    M llvm/utils/gn/secondary/clang-tools-extra/clangd/test/BUILD.gn
    M llvm/utils/gn/secondary/clang-tools-extra/clangd/unittests/BUILD.gn
    M llvm/utils/gn/secondary/clang/lib/AST/BUILD.gn
    M llvm/utils/gn/secondary/clang/lib/Basic/BUILD.gn
    M llvm/utils/gn/secondary/libcxx/include/BUILD.gn
    M llvm/utils/gn/secondary/lldb/include/lldb/Host/BUILD.gn
    M llvm/utils/gn/secondary/lldb/source/Target/BUILD.gn
    M llvm/utils/gn/secondary/llvm/lib/IR/BUILD.gn
    M llvm/utils/gn/secondary/llvm/lib/SandboxIR/BUILD.gn
    M llvm/utils/gn/secondary/llvm/lib/Target/X86/AsmParser/BUILD.gn
    M llvm/utils/gn/secondary/llvm/lib/Target/X86/BUILD.gn
    M llvm/utils/gn/secondary/llvm/lib/Transforms/Utils/BUILD.gn
    M llvm/utils/gn/secondary/llvm/unittests/SandboxIR/BUILD.gn
    M llvm/utils/gn/secondary/llvm/unittests/Transforms/Utils/BUILD.gn
    M llvm/utils/mlgo-utils/pyproject.toml
    M llvm/utils/vim/syntax/llvm.vim
    M mlir/include/mlir-c/Rewrite.h
    A mlir/include/mlir/CAPI/Rewrite.h
    A mlir/include/mlir/Conversion/MathToROCDL/MathToROCDL.h
    M mlir/include/mlir/Conversion/Passes.h
    M mlir/include/mlir/Conversion/Passes.td
    M mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
    M mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
    M mlir/include/mlir/Dialect/SCF/IR/SCFOps.td
    M mlir/include/mlir/Dialect/SPIRV/Transforms/SPIRVConversion.h
    M mlir/include/mlir/Dialect/Vector/IR/VectorOps.td
    M mlir/include/mlir/IR/AffineMap.h
    M mlir/include/mlir/Interfaces/VectorInterfaces.td
    M mlir/lib/Bytecode/Reader/BytecodeReader.cpp
    M mlir/lib/CAPI/Transforms/Rewrite.cpp
    M mlir/lib/Conversion/CMakeLists.txt
    M mlir/lib/Conversion/ConvertToSPIRV/ConvertToSPIRVPass.cpp
    M mlir/lib/Conversion/GPUToROCDL/CMakeLists.txt
    M mlir/lib/Conversion/GPUToROCDL/LowerGpuOpsToROCDLOps.cpp
    A mlir/lib/Conversion/MathToROCDL/CMakeLists.txt
    A mlir/lib/Conversion/MathToROCDL/MathToROCDL.cpp
    M mlir/lib/Dialect/Affine/Transforms/SuperVectorize.cpp
    M mlir/lib/Dialect/Affine/Utils/LoopUtils.cpp
    M mlir/lib/Dialect/Bufferization/Transforms/BufferDeallocationSimplification.cpp
    M mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp
    M mlir/lib/Dialect/Linalg/Transforms/WinogradConv2D.cpp
    M mlir/lib/Dialect/SCF/IR/SCF.cpp
    M mlir/lib/Dialect/SPIRV/Transforms/CMakeLists.txt
    M mlir/lib/Dialect/SPIRV/Transforms/SPIRVConversion.cpp
    M mlir/lib/Dialect/Tensor/Transforms/EmptyOpPatterns.cpp
    M mlir/lib/Dialect/Vector/IR/VectorOps.cpp
    M mlir/lib/Dialect/Vector/Transforms/LowerVectorMask.cpp
    M mlir/lib/Dialect/Vector/Transforms/LowerVectorTransfer.cpp
    M mlir/lib/Dialect/Vector/Transforms/VectorTransforms.cpp
    M mlir/lib/ExecutionEngine/CudaRuntimeWrappers.cpp
    M mlir/lib/IR/AffineMap.cpp
    M mlir/lib/Target/LLVM/ROCDL/Target.cpp
    M mlir/lib/Target/LLVMIR/ModuleImport.cpp
    M mlir/lib/Target/LLVMIR/ModuleTranslation.cpp
    M mlir/lib/Transforms/Utils/RegionUtils.cpp
    M mlir/test/CAPI/CMakeLists.txt
    A mlir/test/CAPI/rewrite.c
    M mlir/test/CMakeLists.txt
    M mlir/test/Conversion/ConvertToSPIRV/arith.mlir
    M mlir/test/Conversion/ConvertToSPIRV/combined.mlir
    A mlir/test/Conversion/ConvertToSPIRV/func-signature-vector-unroll.mlir
    M mlir/test/Conversion/ConvertToSPIRV/index.mlir
    M mlir/test/Conversion/ConvertToSPIRV/scf.mlir
    M mlir/test/Conversion/ConvertToSPIRV/simple.mlir
    M mlir/test/Conversion/ConvertToSPIRV/ub.mlir
    M mlir/test/Conversion/ConvertToSPIRV/vector.mlir
    A mlir/test/Conversion/MathToROCDL/math-to-rocdl.mlir
    M mlir/test/Conversion/VectorToSCF/vector-to-scf.mlir
    M mlir/test/Dialect/Affine/SuperVectorize/vectorize_1d.mlir
    M mlir/test/Dialect/Affine/SuperVectorize/vectorize_2d.mlir
    M mlir/test/Dialect/Affine/SuperVectorize/vectorize_affine_apply.mlir
    M mlir/test/Dialect/Bufferization/Transforms/OwnershipBasedBufferDeallocation/dealloc-branchop-interface.mlir
    M mlir/test/Dialect/LLVMIR/func.mlir
    M mlir/test/Dialect/Linalg/detensorize_entry_block.mlir
    M mlir/test/Dialect/Linalg/detensorize_if.mlir
    M mlir/test/Dialect/Linalg/detensorize_while.mlir
    M mlir/test/Dialect/Linalg/detensorize_while_impure_cf.mlir
    M mlir/test/Dialect/Linalg/detensorize_while_pure_cf.mlir
    M mlir/test/Dialect/Linalg/hoisting.mlir
    M mlir/test/Dialect/Linalg/vectorization.mlir
    A mlir/test/Dialect/Linalg/winograd-conv2d-rewrite.mlir
    M mlir/test/Dialect/SCF/canonicalize.mlir
    M mlir/test/Dialect/Tensor/fold-empty-op.mlir
    M mlir/test/Dialect/Vector/invalid.mlir
    M mlir/test/Dialect/Vector/ops.mlir
    M mlir/test/Dialect/Vector/vector-transfer-collapse-inner-most-dims.mlir
    M mlir/test/Dialect/Vector/vector-transfer-flatten.mlir
    M mlir/test/Dialect/Vector/vector-transfer-permutation-lowering.mlir
    M mlir/test/Dialect/Vector/vector-transfer-to-vector-load-store.mlir
    M mlir/test/Dialect/Vector/vector-transfer-unroll.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/transfer-read-1d.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/transfer-read-2d.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/transfer-read-3d.mlir
    A mlir/test/Integration/GPU/CUDA/alloc-host-shared.mlir
    M mlir/test/Target/LLVMIR/Import/function-attributes.ll
    A mlir/test/Target/LLVMIR/Import/tune-cpu.ll
    M mlir/test/Target/LLVMIR/llvmir-intrinsics.mlir
    M mlir/test/Target/LLVMIR/llvmir.mlir
    A mlir/test/Target/LLVMIR/tune-cpu.mlir
    M mlir/test/Transforms/canonicalize-block-merge.mlir
    M mlir/test/Transforms/canonicalize-dce.mlir
    M mlir/test/Transforms/make-isolated-from-above.mlir
    A mlir/test/Transforms/test-canonicalize-merge-large-blocks.mlir
    M mlir/test/lib/Conversion/CMakeLists.txt
    A mlir/test/lib/Conversion/ConvertToSPIRV/CMakeLists.txt
    A mlir/test/lib/Conversion/ConvertToSPIRV/TestSPIRVFuncSignatureConversion.cpp
    M mlir/test/lib/Dialect/Linalg/TestLinalgTransforms.cpp
    M mlir/test/lit.cfg.py
    M mlir/test/mlir-tblgen/gen-dialect-doc.td
    M mlir/test/python/dialects/vector.py
    M mlir/tools/mlir-opt/CMakeLists.txt
    M mlir/tools/mlir-opt/mlir-opt.cpp
    M mlir/tools/mlir-tblgen/OpDocGen.cpp
    M offload/include/OpenMP/OMPT/Interface.h
    M offload/src/OpenMP/API.cpp
    M offload/src/OpenMP/OMPT/Callback.cpp
    A offload/test/ompt/omp_api.c
    M openmp/libompd/gdb-plugin/ompd/ompd.py
    M openmp/libompd/gdb-plugin/ompd/ompd_callbacks.py
    M openmp/runtime/src/include/omp-tools.h.var
    M openmp/runtime/src/kmp_barrier.cpp
    M openmp/runtime/src/kmp_runtime.cpp
    M openmp/runtime/src/kmp_wait_release.h
    M openmp/runtime/src/ompt-specific.cpp
    M openmp/runtime/test/ompt/callback.h
    M openmp/runtime/test/ompt/parallel/nested.c
    M openmp/runtime/test/ompt/parallel/nested_lwt.c
    M openmp/runtime/test/ompt/parallel/nested_serialized.c
    M openmp/runtime/test/ompt/parallel/nested_thread_num.c
    M openmp/runtime/test/ompt/parallel/no_thread_num_clause.c
    M openmp/runtime/test/ompt/parallel/normal.c
    M openmp/runtime/test/ompt/parallel/not_enough_threads.c
    M openmp/runtime/test/ompt/synchronization/barrier/explicit.c
    M openmp/runtime/test/ompt/synchronization/barrier/for_loop.c
    M openmp/runtime/test/ompt/synchronization/barrier/for_simd.c
    M openmp/runtime/test/ompt/synchronization/barrier/implicit_task_data.c
    M openmp/runtime/test/ompt/synchronization/barrier/parallel_region.c
    M openmp/runtime/test/ompt/synchronization/barrier/sections.c
    M openmp/runtime/test/ompt/synchronization/barrier/single.c
    M openmp/runtime/test/ompt/tasks/explicit_task.c
    M openmp/runtime/test/ompt/tasks/serialized.c
    M openmp/runtime/test/ompt/tasks/task_in_joinbarrier.c
    M openmp/runtime/test/ompt/tasks/untied_task.c
    A openmp/runtime/test/transform/reverse/foreach.cpp
    A openmp/runtime/test/transform/reverse/intfor.c
    A openmp/runtime/test/transform/reverse/iterfor.cpp
    A openmp/runtime/test/transform/reverse/parallel-wsloop-collapse-foreach.cpp
    A openmp/runtime/test/transform/reverse/parallel-wsloop-collapse-intfor.cpp
    M openmp/tools/archer/tests/lit.cfg
    M openmp/tools/multiplex/tests/custom_data_storage/custom_data_storage.c
    M openmp/tools/multiplex/tests/print/print.c
    M utils/bazel/README.md
    M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
    M utils/bazel/llvm-project-overlay/libc/libc_build_rules.bzl
    M utils/bazel/llvm-project-overlay/libc/test/UnitTest/BUILD.bazel
    M utils/bazel/llvm-project-overlay/libc/test/src/math/BUILD.bazel
    M utils/bazel/llvm-project-overlay/libc/test/src/stdlib/BUILD.bazel
    M utils/bazel/llvm-project-overlay/libc/test/src/string/BUILD.bazel
    M utils/bazel/llvm-project-overlay/libc/utils/MPFRWrapper/BUILD.bazel
    M utils/bazel/llvm-project-overlay/lldb/BUILD.bazel
    M utils/bazel/llvm-project-overlay/lldb/source/Plugins/BUILD.bazel
    M utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
    M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
    M utils/bazel/llvm-project-overlay/mlir/test/BUILD.bazel

  Log Message:
  -----------
  [𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.5-bogner

[skip ci]


Compare: https://github.com/llvm/llvm-project/compare/c1ddf33012f2...3acf8797c2a2

To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list