[all-commits] [llvm/llvm-project] aa1968: [BOLT] Add metadata pre-emit finalization interfac...

Fangrui Song via All-commits all-commits at lists.llvm.org
Tue Jan 30 11:10:30 PST 2024


  Branch: refs/heads/users/MaskRay/spr/msan-unpoison-indirect-outputs-for-userspace-using-llvmmemset
  Home:   https://github.com/llvm/llvm-project
  Commit: aa1968c2ebdd05aa3ba876062acd966a3e251ebe
      https://github.com/llvm/llvm-project/commit/aa1968c2ebdd05aa3ba876062acd966a3e251ebe
  Author: Maksim Panchenko <maks at fb.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M bolt/include/bolt/Rewrite/MetadataManager.h
    M bolt/include/bolt/Rewrite/MetadataRewriter.h
    M bolt/include/bolt/Rewrite/RewriteInstance.h
    M bolt/lib/Rewrite/LinuxKernelRewriter.cpp
    M bolt/lib/Rewrite/MetadataManager.cpp
    M bolt/lib/Rewrite/RewriteInstance.cpp

  Log Message:
  -----------
  [BOLT] Add metadata pre-emit finalization interface (#79925)

Some metadata needs to be updated/finalized before the binary context is
emitted into the binary. Add the interface and use it for Linux ORC
update invocation.


  Commit: 3d1157000db56a340e1dae90b587bd144ffeaa6c
      https://github.com/llvm/llvm-project/commit/3d1157000db56a340e1dae90b587bd144ffeaa6c
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M flang/include/flang/Evaluate/characteristics.h
    M flang/lib/Evaluate/characteristics.cpp
    M flang/lib/Semantics/check-declarations.cpp
    M flang/test/Semantics/generic05.F90
    M flang/test/Semantics/generic07.f90
    M flang/test/Semantics/resolve17.f90
    M flang/test/Semantics/resolve53.f90
    M flang/test/Semantics/resolve54.f90
    M flang/test/Semantics/resolve65.f90
    M flang/test/Semantics/resolve96.f90

  Log Message:
  -----------
  [flang] Restore error status for many indistinguishable specifics (#79927)

A recent patch to allow pFUnit to compile softened the diagnostic about
indistinguishable specific procedures to a portability warning. It turns
out that this was overkill -- for specific procedures containing no
optional or unlimited polymorphic dummy data arguments, a diagnosis of
"indistinguishable" can still be a hard error.

So adjust the analysis to be tri-state: two procedures are either
definitely distinguishable, definitely indistinguishable without
optionals or unlimited polymorphics, or indeterminate. Emit errors as
before for the definitely indistinguishable cases; continue to emit
portability warnings for the indeterminate cases.

When this patch is merged, all but one of the dozen or so tests that I
disabled in llvm-test-suite can be re-enabled.


  Commit: 59c9a48d5e19716e5df8d0f794e489891fd2c835
      https://github.com/llvm/llvm-project/commit/59c9a48d5e19716e5df8d0f794e489891fd2c835
  Author: kusmour <kusmour at gmail.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M llvm/lib/DebugInfo/GSYM/GsymCreator.cpp
    A llvm/test/tools/llvm-gsymutil/X86/elf-empty-dir.yaml

  Log Message:
  -----------
  [llvm-gsymutil] Fix assert failure on FileEntry.Dir empty (#79926)

Summary:
FileEntry.Dir can be empty if debug info only contains relative path.
This caused an assertion failure when gsym segmentation is trying to
copy a file entry with empty dir. As the fitst entry of StringTable is
always empty (and is preserved), `StringOffsetMap` doesn't have key 0.
Hence, `find(0)` returns `End` and `operator->()` fails the assertion

Test Plan:
./bin/llvm-lit -sv llvm/test/tools/llvm-gsymutil/X86/elf-empty-dir.yaml


  Commit: a694104022cff5e8b38321f99fd0bc34d8847f5d
      https://github.com/llvm/llvm-project/commit/a694104022cff5e8b38321f99fd0bc34d8847f5d
  Author: Diego Caballero <diegocaballero at google.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M mlir/lib/Dialect/Vector/Transforms/VectorEmulateNarrowType.cpp
    M mlir/test/Dialect/Vector/vector-rewrite-narrow-types.mlir

  Log Message:
  -----------
  [mlir][Vector] Add patterns for efficient i4 -> i8 conversion emulation (#79494)

This PR adds new patterns to improve the generated vector code for the emulation of any conversion that have to go through an i4 -> i8 type extension (only signed extensions are supported for now). This will impact any i4 -> i8/i16/i32/i64 signed extensions as well as sitofp i4 -> f8/f16/f32/f64.

The asm code generated for the supported cases is significantly better after this PR for both x86 and aarch64.


  Commit: 0fc791cd2c4e249a9304ac0f36e35a2a3edbd66d
      https://github.com/llvm/llvm-project/commit/0fc791cd2c4e249a9304ac0f36e35a2a3edbd66d
  Author: Maksim Panchenko <maks at fb.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M bolt/lib/Rewrite/LinuxKernelRewriter.cpp
    A bolt/test/X86/linux-orc.s
    R bolt/test/X86/orc_unwind.s

  Log Message:
  -----------
  [BOLT] Fix comparison function for Linux ORC entries (#79921)

Fix ORC entry comparison function to cover a case with multiple
terminator entries matching at the same IP.


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

  Changed paths:
    M mlir/lib/Dialect/Vector/Transforms/VectorEmulateNarrowType.cpp

  Log Message:
  -----------
  [mlir] Remove unused variable 'byteBitwidth' in VectorEmulateNarrowType.cpp (NFC)

llvm-project/mlir/lib/Dialect/Vector/Transforms/VectorEmulateNarrowType.cpp:763:12:
error: unused variable 'byteBitwidth' [-Werror,-Wunused-variable]
  unsigned byteBitwidth = 8;
           ^
1 error generated.


  Commit: 45188c64db68af92596acdb2d9022527f6aa4502
      https://github.com/llvm/llvm-project/commit/45188c64db68af92596acdb2d9022527f6aa4502
  Author: Liao Chunyu <chunyu at iscas.ac.cn>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

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

  Log Message:
  -----------
  [DAGCombiner] Use generalized pattern matcher in foldBoolSelectToLogic (#79101)

support vp.select
    
 TODO: Possibly other functions could be supported, eg: SimplifySelect()


  Commit: 4460fa8814d4c86e1d22f830078d7bad69bc0ecc
      https://github.com/llvm/llvm-project/commit/4460fa8814d4c86e1d22f830078d7bad69bc0ecc
  Author: Cyndy Ishida <cyndy_ishida at apple.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M llvm/include/llvm/TextAPI/InterfaceFile.h
    M llvm/include/llvm/TextAPI/Record.h
    M llvm/include/llvm/TextAPI/RecordsSlice.h
    M llvm/include/llvm/TextAPI/Symbol.h
    M llvm/include/llvm/TextAPI/SymbolSet.h
    M llvm/lib/TextAPI/RecordVisitor.cpp
    M llvm/lib/TextAPI/RecordsSlice.cpp
    M llvm/lib/TextAPI/Symbol.cpp
    M llvm/lib/TextAPI/SymbolSet.cpp
    A llvm/test/tools/llvm-readtapi/stubify-ehtypes.test
    M llvm/unittests/TextAPI/RecordTests.cpp
    M llvm/unittests/TextAPI/TextStubV5Tests.cpp

  Log Message:
  -----------
  [TextAPI] Introduce granularity for handling ObjC Interface symbols (#79928)

ObjCInterfaceRecords roughly align to the objc-classes key in tbd-files.
They condensely represent up to 3 symbols. The problem here is that when
represented this way, we lose granularity when these symbols could have
different linkages or outright don't exist. This can happen frequently
in interoptable code generated by the swift compiler. This adds fields
and utility functions to express unique properties for these symbols. If
the record does represent the same properties across all of its symbols,
it will be treated the same in the TBD. Otherwise it will be printed in
global's section.

Reviewed seperately before by Juergen Ributzka


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

  Changed paths:
    M llvm/tools/lli/lli.cpp

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


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

  Changed paths:
    M clang/tools/diagtool/TreeView.cpp

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


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

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

  Log Message:
  -----------
  [AMDGPU] Use a range-based for loop (NFC)


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

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

  Log Message:
  -----------
  [Mips] Use a range-based for loop (NFC)


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

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

  Log Message:
  -----------
  [Target] Use SDValue::getConstantOperandVal (NFC)


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

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

  Log Message:
  -----------
  AMDGPU: Simplify else if to just else in AMDGPUInstCombineIntrinsic

Fixes #79738


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

  Changed paths:
    M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCCodeEmitter.cpp

  Log Message:
  -----------
  AMDGPU: Simplify else if to else in AMDGPUMCCodeEmitter

Fixes #79737


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

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

  Log Message:
  -----------
  AMDGPU: Simplify else if to else in GCNHazardRecognizer

Fixes #79736


  Commit: 7f6d4455231d458a6925ca5c957bb2814c196ea2
      https://github.com/llvm/llvm-project/commit/7f6d4455231d458a6925ca5c957bb2814c196ea2
  Author: Jakub Kuderski <jakub at nod-labs.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M mlir/lib/Conversion/MemRefToSPIRV/MapMemRefStorageClassPass.cpp

  Log Message:
  -----------
  [mlir][spirv] Clean up map-memref-storage-class pass (#79937)

Clean up the code before making more substantial changes. NFC modulo
extra error checking and physical storage buffer storage class handling.

* Add switch case for physical storage buffer
* Handle type conversion failures
* Inline methods to reduce scrolling
* Other minor cleanups


  Commit: 198652a0ff2553c4ba906be10c22af57d20d0bd3
      https://github.com/llvm/llvm-project/commit/198652a0ff2553c4ba906be10c22af57d20d0bd3
  Author: Arthur Eubanks <aeubanks at google.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

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

  Log Message:
  -----------
  [X86] Treat __start_*/__stop_* symbols as large (#79909)

Followup to #79884.

The linker adds __start_foo/__stop_foo symbols pointing to the
beginning/end of the foo section. These can be far away from text, so
treat them as large symbols under the medium/large code models.
Performance to access these is almost certainly not important.


  Commit: 70eb0e37a86747f9266e4c8380baa89746f5e23b
      https://github.com/llvm/llvm-project/commit/70eb0e37a86747f9266e4c8380baa89746f5e23b
  Author: Rob Suderman <rob.suderman at gmail.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

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

  Log Message:
  -----------
  [mlir][tensor] Fix `tensor.pad` to remove newly static values (#79938)

The canonicalization incrementally converts foldable dynamic hi/lo
padding to static hi/lo values. During this canonicalization the
static-fied valued should be removed from the dynamic values.


  Commit: dc4483659fc51890fdc732acc66a4dcda6e68047
      https://github.com/llvm/llvm-project/commit/dc4483659fc51890fdc732acc66a4dcda6e68047
  Author: Po-yao Chang <poyaoc97 at gmail.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M libcxx/modules/std/atomic.inc
    M libcxx/modules/std/iosfwd.inc
    M libcxx/modules/std/string.inc
    M libcxx/modules/std/string_view.inc

  Log Message:
  -----------
  [libc++][modules] Support using the module std with -fno-char8_t. (#79155)

Exclude some using-declarations in the module purview when compiling
with `-fno-char8_t`.


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

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

  Log Message:
  -----------
  [RISCV] Don't use pointer operand in MemoryLocation for RISC-V strided and indexed load/store intrinsics. (#79890)

It seems that even though we set the size to unknown, there is still an
assumption in alias analysis somewhere that we will only access bytes
*after* the pointer. Since a strided/indexed load/store can have
negative indices, this is not accurate.

This was found in our downstream when the scheduler reordered a strided
load with negative stride above a scalar store that aliased with it.


  Commit: 5910e34a2f9a531e0fb6bb4ec1d2888f4a0c0897
      https://github.com/llvm/llvm-project/commit/5910e34a2f9a531e0fb6bb4ec1d2888f4a0c0897
  Author: XinWang10 <108658776+XinWang10 at users.noreply.github.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M llvm/lib/Target/X86/MCTargetDesc/X86EncodingOptimization.cpp
    M llvm/lib/Target/X86/MCTargetDesc/X86EncodingOptimizationForImmediate.def
    M llvm/test/CodeGen/X86/apx/adc.ll
    M llvm/test/CodeGen/X86/apx/add.ll
    M llvm/test/CodeGen/X86/apx/and.ll
    M llvm/test/CodeGen/X86/apx/or.ll
    M llvm/test/CodeGen/X86/apx/rol.ll
    M llvm/test/CodeGen/X86/apx/sar.ll
    M llvm/test/CodeGen/X86/apx/sbb.ll
    M llvm/test/CodeGen/X86/apx/shift-eflags.ll
    M llvm/test/CodeGen/X86/apx/shr.ll
    M llvm/test/CodeGen/X86/apx/sub.ll
    M llvm/test/CodeGen/X86/apx/xor.ll
    A llvm/test/MC/X86/apx/adc-reloc.s
    A llvm/test/MC/X86/apx/add-reloc.s
    A llvm/test/MC/X86/apx/and-reloc.s
    A llvm/test/MC/X86/apx/imul-reloc.s
    A llvm/test/MC/X86/apx/or-reloc.s
    A llvm/test/MC/X86/apx/rcl-encopt.s
    A llvm/test/MC/X86/apx/rcr-encopt.s
    A llvm/test/MC/X86/apx/rol-encopt.s
    A llvm/test/MC/X86/apx/ror-encopt.s
    A llvm/test/MC/X86/apx/sar-encopt.s
    A llvm/test/MC/X86/apx/sbb-reloc.s
    A llvm/test/MC/X86/apx/shl-encopt.s
    A llvm/test/MC/X86/apx/shr-encopt.s
    A llvm/test/MC/X86/apx/sub-reloc.s
    A llvm/test/MC/X86/apx/xor-reloc.s

  Log Message:
  -----------
  [X86][MC] Support  encoding optimization & assembler relaxation about immediate operands for APX instructions (#78545)

Encoding optimization:
```
mi/mi32 -> mi8
ri/ri32 -> ri8
```
if the immediate operand is 8-bit wide.

Assembler relaxation:
```
mi8 -> mi/mi32
ri8 -> ri/ri32
```
If the immediate operand is a symbol expression and it's value is
unknown.


  Commit: d09082f6fd517759e5c0874a2e73bddd550de299
      https://github.com/llvm/llvm-project/commit/d09082f6fd517759e5c0874a2e73bddd550de299
  Author: Piyou Chen <piyou.chen at sifive.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M clang/test/Driver/riscv-arch.c
    M llvm/lib/Support/RISCVISAInfo.cpp
    M llvm/unittests/Support/RISCVISAInfoTest.cpp

  Log Message:
  -----------
  [RISCV] Relax march string order constraint (#78120)

Follow
https://github.com/riscv-non-isa/riscv-toolchain-conventions/pull/14 by
dropping the order requirement of `-march`.

1. single-letter extension can be arbitrary order
    - march=rv32iamdf 
2. single-letter extension and multi-letter extension can be mixed
    - march=rv32i_zihintntl_m_a_f_d_svinval
3. multi-letter extension need seperate the following extension by
underscore, otherwise it will be intreprete as one extension.
    - march=rv32i_zbam -> i,zbam
    - march=rv32i_zba_m -> i,zba,m


  Commit: 67f0a6917c07df6a21580adb567b1a8964818d92
      https://github.com/llvm/llvm-project/commit/67f0a6917c07df6a21580adb567b1a8964818d92
  Author: ampandey-1995 <137622562+ampandey-1995 at users.noreply.github.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
    A llvm/test/Instrumentation/AddressSanitizer/AMDGPU/asan_instrument_mem_intrinsics.ll

  Log Message:
  -----------
  [ASan][AMDGPU] Fix Assertion Failure. (#79795)

Assertion failure `(i >= FTy->getNumParams() || FTy->getParamType(i) ==
Args[i]->getType()) && "Calling a function with a bad signature!"'. The
'llvm.memcpy' intercepted by ASan instrumentation pass is implemented by
it's own __asan_memcpy implementation. The second argument of
llvm.memcpy accepts ptr to addrspace(4), __asan_memcpy also has to
follow ptr to addrspace(4) convention.

---------

Co-authored-by: Amit Pandey <amit.pandey at amd.com>


  Commit: cb46c6181770dabad59cc738ad1d26ad78b5f885
      https://github.com/llvm/llvm-project/commit/cb46c6181770dabad59cc738ad1d26ad78b5f885
  Author: Kyungwoo Lee <kyulee at meta.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    M lld/MachO/Driver.cpp
    M lld/MachO/SyntheticSections.cpp
    M lld/MachO/SyntheticSections.h
    M lld/MachO/Writer.cpp
    A lld/test/MachO/arm64-objc-stubs-dead.s

  Log Message:
  -----------
  [lld-macho] dead-strip objc stubs (#79726)

This supports dead-strip for objc stubs.


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

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

  Log Message:
  -----------
  [RISCV] Refine cost on Min/Max reduction (#79402)

This patch is split off from #77342, and follows #79103

- Correct for CodeSize cost that 1 instruction is not included. 3 is
from {VMV.S, ReductionOp, VMV.X}
- Add SplitCost which chains a series of VMAX/VMIN/... which scales with
LMUL.
- Use MVT to estimate VL.


  Commit: 1a219e989f07eef06fbc9f75ad0c07ebdc652334
      https://github.com/llvm/llvm-project/commit/1a219e989f07eef06fbc9f75ad0c07ebdc652334
  Author: XinWang10 <108658776+XinWang10 at users.noreply.github.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86CompressEVEX.cpp
    M llvm/test/CodeGen/X86/apx/compress-evex.mir
    M llvm/utils/TableGen/X86ManualCompressEVEXTables.def

  Log Message:
  -----------
  [X86] Support EVEX compression from MOVBErr to BSWAP (#79775)

APX promoted MOVBE instructions were supported in #77431. The reg2reg
variants of MOVBE are newly introduced by APX and can be optimized to
BSWAP instruction when the 2 register operands are same.

This patch adds manual entries for MOVBErr instructions when we do ndd
to non-ndd compression #77731.
RFC:
https://discourse.llvm.org/t/rfc-design-for-apx-feature-egpr-and-ndd-support/73031/4


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

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

  Log Message:
  -----------
  [clang][AST][NFC] Take const CXXRecordDecl* in ComparisonCategories

The class member is already const.


  Commit: 547113fd1f52e2a3d08e3b71ddcd47505ca4a21a
      https://github.com/llvm/llvm-project/commit/547113fd1f52e2a3d08e3b71ddcd47505ca4a21a
  Author: Markus Böck <markus.boeck02 at gmail.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M mlir/include/mlir/IR/EnumAttr.td
    M mlir/lib/Dialect/Arith/IR/ArithCanonicalization.td
    M mlir/lib/Dialect/Arith/IR/ArithOps.cpp
    M mlir/test/IR/enum-attr-roundtrip.mlir
    M mlir/test/lib/Dialect/Test/TestOps.td

  Log Message:
  -----------
  [mlir][ODS] Add `ConstantEnumCase` (#78992)

Specifying an enum case of an enum attr currently requires the use of
either `NativeCodeCall` or a `ConstantAttr` specifying the full C++ name
of the enum case. The disadvantages of both are less readable code due
to including C++ expressions and very few checks of any kind, creating
C++ code that does not compile instead.

This PR adds `ConstantEnumCase`, a kind of `ConstantAttr` which
automatically derives the correct value representation from a given enum
and the string representation of an enum case. It supports both
`EnumAttrInfo`s (enums wrapping `IntegerAttr`) and `EnumAttr` (proper
dialect attributes). It even supports bit-enums, allowing one to list
multiple enum cases and have them be combined. If an enum case is not
found, an assertion is triggered with a proper error message.

Besides the tests, it was also used to simplify DRR patterns in the
arith dialect.


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

  Changed paths:
    M libc/src/__support/FPUtil/FPBits.h
    M libc/test/src/__support/FPUtil/fpbits_test.cpp

  Log Message:
  -----------
  [libc] Add test to check all properties for all FPBit types. (#79851)

This test is platform agnostic, it runs all tests on all architectures.


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

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

  Log Message:
  -----------
  [X86] Silence -Wlogical-op-parentheses in X86CompressEVEX.cpp (NFC)

llvm-project/llvm/lib/Target/X86/X86CompressEVEX.cpp:233:15:
error: '&&' within '||' [-Werror,-Wlogical-op-parentheses]
    if (!IsND && !IsMovberr || !isRedundantNewDataDest(MI, ST))
        ~~~~~~^~~~~~~~~~~~~ ~~
llvm-project/llvm/lib/Target/X86/X86CompressEVEX.cpp:233:15:
note: place parentheses around the '&&' expression to silence this warning
    if (!IsND && !IsMovberr || !isRedundantNewDataDest(MI, ST))
              ^
        (                  )
1 error generated.


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

  Changed paths:
    M llvm/docs/GitHub.rst
    M llvm/docs/MyFirstTypoFix.rst

  Log Message:
  -----------
  [llvm][Docs] Expand MyFirstTypoFix's post-commit section (#79827)

And link to it from the GitHub guide. Since it fits in the flow of the
former document better, but is of interest to those using the GitHub
specific guide.

This includes some content I wrote for an automated PR comment but I
think is useful to have in a single place to link to instead.

I have removed some details:
* About the waterfall view because it doesn't seem that useful to new
contributors and is likely to just seem like constant chaos given how
many builds are going on.
* The orange bubbles in the console view. I also remember this being the
case but whether it was changed, or the web UI is just not loading
properly, I now see red builds that were red before that commit. So
again, it seems like detail that's not needed for a new contributor.


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

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

  Log Message:
  -----------
  [clang][AST][NFC] Make FieldDecl in SubobjectAdjustment const


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

  Changed paths:
    M llvm/test/Analysis/StackSafetyAnalysis/local.ll

  Log Message:
  -----------
  [StackSafetyAnalysis] Add test with non-pointer use (NFC)


  Commit: e9e1a72c22181993edf5bd0b660538081c2cdfb5
      https://github.com/llvm/llvm-project/commit/e9e1a72c22181993edf5bd0b660538081c2cdfb5
  Author: Gábor Spaits <48805437+spaits at users.noreply.github.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M clang/test/SemaTemplate/deduction.cpp

  Log Message:
  -----------
  [Sema] Restructure and extend the testing of template pack deduction (#79881)

Add tests for empty pack deduction from function arguments.


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

  Changed paths:
    M clang/test/CodeGen/attr-target-version.c
    M llvm/include/llvm/TargetParser/AArch64TargetParser.h

  Log Message:
  -----------
  [FMV] Change feature priorities according to ACLE. (#79316)

This patch follows the latest ACLE specification as shown in PR
https://github.com/ARM-software/acle/pull/279. It adjusts the
priorities for FEAT_DOTPROD, FEAT_SM4, FEAT_FP16FML, FEAT_RDM.


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

  Changed paths:
    M llvm/lib/Analysis/StackSafetyAnalysis.cpp
    A llvm/test/Analysis/StackSafetyAnalysis/extend-ptr.ll

  Log Message:
  -----------
  [StackSafetyAnalysis] Don't call getTruncateOrZeroExtend for pointers of different sizes (#79804)

Otherwise SCEV asserts `Can't extend pointer!`

Fixes SWDEV-442670


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

  Changed paths:
    M clang/lib/Analysis/CFG.cpp
    M clang/lib/CodeGen/CGExprConstant.cpp
    M clang/lib/Sema/JumpDiagnostics.cpp

  Log Message:
  -----------
  [clang][NFC] Use no-param version of skipRValueSubobjectAdjustments

when possible.


  Commit: 5a00cb1abfedbcc0fb60a9b11b4a9876160e3a92
      https://github.com/llvm/llvm-project/commit/5a00cb1abfedbcc0fb60a9b11b4a9876160e3a92
  Author: Mehdi Amini <joker.eph at gmail.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M clang/test/Driver/riscv-arch.c
    M llvm/lib/Support/RISCVISAInfo.cpp
    M llvm/unittests/Support/RISCVISAInfoTest.cpp

  Log Message:
  -----------
  Revert "[RISCV] Relax march string order constraint" (#79976)

Reverts llvm/llvm-project#78120

Buildbot is broken:

llvm/lib/Support/RISCVISAInfo.cpp:910:18: error: call to deleted
constructor of 'llvm::Error'
          return E;
                 ^


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

  Changed paths:
    M llvm/test/CodeGen/X86/popcnt.ll

  Log Message:
  -----------
  [X86][test] Update CodeGen/X86/popcnt.ll after #78545


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

  Changed paths:
    M mlir/include/mlir/Dialect/Arith/IR/ArithOps.td
    M mlir/lib/Conversion/ArithToLLVM/ArithToLLVM.cpp
    M mlir/lib/Conversion/ArithToSPIRV/ArithToSPIRV.cpp
    M mlir/test/Conversion/ArithToLLVM/arith-to-llvm.mlir
    M mlir/test/Conversion/ArithToSPIRV/arith-to-spirv.mlir
    M mlir/test/Dialect/Arith/ops.mlir

  Log Message:
  -----------
  [mlir] [arith] add shl overflow flag in Arith and lower to SPIR-V and LLVMIR (#79828)

There is no `SHL` used in canonicalization in `arith`

---------

Co-authored-by: Jakub Kuderski <kubakuderski at gmail.com>
Co-authored-by: Tobias Gysi <tobias.gysi at nextsilicon.com>


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

  Changed paths:
    M llvm/include/llvm/CodeGen/TargetRegisterInfo.h
    M llvm/include/llvm/MC/MCRegisterInfo.h
    M llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
    M llvm/unittests/CodeGen/MachineInstrTest.cpp
    M llvm/utils/TableGen/RegisterInfoEmitter.cpp

  Log Message:
  -----------
  [AMDGPU] Speed up SIRegisterInfo::getReservedRegs (#79844)

reserveRegisterTuples is slow because it uses MCRegAliasIterator and
hence ends up reserving the same aliased registers many times. This
patch changes getReservedRegs not to use it for reserving SGPRs, VGPRs
and AGPRs. Instead it iterates through base register classes, which
should come closer to reserving each register once only.

Overall this speeds up the time to run check-llvm-codegen-amdgpu in my
Release build from 18.4 seconds to 16.9 seconds (all timings +/- 0.2).


  Commit: 04d20b17050203e07394b4f9ee61b5affe2d5347
      https://github.com/llvm/llvm-project/commit/04d20b17050203e07394b4f9ee61b5affe2d5347
  Author: Younan Zhang <zyn7109 at gmail.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/Sema/SemaConcept.cpp
    M clang/test/SemaTemplate/concepts-out-of-line-def.cpp

  Log Message:
  -----------
  [concepts] Set up an instantiation scope for constraint expression comparison (#79698)

This is a follow-up for the comparison of constraints on out-of-line
function template definitions. We require the instantiation of a
ParmVarDecl while transforming the expression if that Decl gets
referenced by a DeclRefExpr. However, we're not actually performing the
class or function template instantiation at the time of such comparison.
Therefore, let's map these parameters to themselves so that they get
preserved after the substitution.

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


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

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

  Log Message:
  -----------
  [X86] X86ISelLowering.cpp - add clang-format on/off tags around 'compressed' switch code. NFC.

Stop clang-format trying to expand manually compressed lookup switch() code - if it still fits into 80col, then keep it to a single line instead of expanding across multiple lines each.


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

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

  Log Message:
  -----------
  [X86] X86CompressEVEX.cpp - ensure we tie the operands on MOVBErr instructions

Minor correction for #79775 - noticed in EXPENSIVE_CHECKS builds


  Commit: ef67f63fa5f950f4056b5783e92e137342805d74
      https://github.com/llvm/llvm-project/commit/ef67f63fa5f950f4056b5783e92e137342805d74
  Author: Andrey Ali Khan Bolshakov <32954549+bolshakov-a at users.noreply.github.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M clang/lib/Sema/SemaDecl.cpp
    M clang/lib/StaticAnalyzer/Core/Environment.cpp
    M clang/test/Analysis/templates.cpp
    M clang/test/SemaTemplate/temp_arg_nontype_cxx20.cpp

  Log Message:
  -----------
  Fix analyzer crash on 'StructuralValue' (#79764)

`OpaqueValueExpr` doesn't necessarily contain a source expression.
Particularly, after #78041, it is used to carry the type and the value
kind of a non-type template argument of floating-point type or referring
to a subobject (those are so called `StructuralValue` arguments).

This fixes #79575.


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

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

  Log Message:
  -----------
  [X86][NFC] X86CompressEVEX.cpp - Simplify code after 0c623b58e39cba7e67a0049dbcac87fdcc0103e1


  Commit: 683bc94e1637bd9bacc978f5dc3c79cfc8ff94b9
      https://github.com/llvm/llvm-project/commit/683bc94e1637bd9bacc978f5dc3c79cfc8ff94b9
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M libcxx/docs/ReleaseNotes/19.rst
    M libcxx/include/__config
    M libcxx/include/__format/format_functions.h

  Log Message:
  -----------
  [libc++] Officially remove _VSTD and _LIBCPP_INLINE_VISIBILITY (#79885)

Those were deprecated and basically not used anymore after we renamed
them in batch. This patch removes the macros entirely.


  Commit: fdac7d0b6f74f919d319b31a0680c77f66732586
      https://github.com/llvm/llvm-project/commit/fdac7d0b6f74f919d319b31a0680c77f66732586
  Author: Sergio Afonso <safonsof at amd.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h

  Log Message:
  -----------
  [OpenMPIRBuilder] NFC: Improve description of IsTargetDevice and IsGPU (#79322)

This patch tries to better explain the differences between the
`IsTargetDevice` and `IsGPU` flags of the `OpenMPIRBuilderConfig`.


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

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

  Log Message:
  -----------
  [X86][CodeGen] Add entries for TB_BCAST_SH in getBroadcastOpcode


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

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

  Log Message:
  -----------
  [AArch64] Add tests with sext of vec3 loads.

Another round of additional tests for
https://github.com/llvm/llvm-project/pull/7863
with different sext/zext and use variants.


  Commit: a0d266d705d6c145e8daa08a08f70e9498ec3d0b
      https://github.com/llvm/llvm-project/commit/a0d266d705d6c145e8daa08a08f70e9498ec3d0b
  Author: Krystian Stasiowski <sdkrystian at gmail.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/lib/Sema/SemaDecl.cpp
    M clang/test/CXX/class.access/p4.cpp
    A clang/test/CXX/dcl.dcl/dcl.enum/p1.cpp
    M clang/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.type.elab/p1.cpp
    M clang/test/CXX/drs/dr16xx.cpp
    M clang/test/CXX/module/module.interface/p2-2.cpp
    M clang/test/SemaCXX/enum-scoped.cpp
    M clang/test/SemaCXX/nested-name-spec.cpp
    M clang/test/SemaTemplate/elaborated-type-specifier.cpp
    M clang/test/SemaTemplate/qualified-id.cpp

  Log Message:
  -----------
  [Clang][Sema] Allow elaborated-type-specifiers that declare member class template explict specializations (#78720)

According to [[dcl.type.elab]
p2](http://eel.is/c++draft/dcl.type.elab#2):
> If an
[elaborated-type-specifier](http://eel.is/c++draft/dcl.type.elab#nt:elaborated-type-specifier)
is the sole constituent of a declaration, the declaration is ill-formed
unless it is an explicit specialization, an explicit instantiation or it
has one of the following forms [...]

Consider the following:
```cpp
template<typename T>
struct A 
{
    template<typename U>
    struct B;
};

template<>
template<typename U>
struct A<int>::B; // #1
```
The _elaborated-type-specifier_ at `#1` declares an explicit
specialization (which is itself a template). We currently (incorrectly)
reject this, and this PR fixes that.

I moved the point at which _elaborated-type-specifiers_ with
_nested-name-specifiers_ are diagnosed from `ParsedFreeStandingDeclSpec`
to `ActOnTag` for two reasons: `ActOnTag` isn't called for explicit
instantiations and partial/explicit specializations, and because it's
where we determine if a member specialization is being declared.

With respect to diagnostics, I am currently issuing the diagnostic
without marking the declaration as invalid or returning early, which
results in more diagnostics that I think is necessary. I would like
feedback regarding what the "correct" behavior should be here.


  Commit: f89d707e5f5e531fb854f70e02d9eaa32aaf19bd
      https://github.com/llvm/llvm-project/commit/f89d707e5f5e531fb854f70e02d9eaa32aaf19bd
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M libcxx/include/__config
    M libcxx/include/__utility/pair.h
    M libcxx/include/string
    M libcxx/include/tuple
    M libcxx/include/vector

  Log Message:
  -----------
  [libc++] Accept __VA_ARGS__ in conditional _NOEXCEPT_ macro (#79877)

This prevents having to use double parentheses in common cases.


  Commit: 7162fd750ee5f786f3b9b7a7b26b72ee36ce772e
      https://github.com/llvm/llvm-project/commit/7162fd750ee5f786f3b9b7a7b26b72ee36ce772e
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M libcxx/docs/DesignDocs/ThreadingSupportAPI.rst
    M libcxx/include/CMakeLists.txt
    M libcxx/include/__atomic/atomic_flag.h
    M libcxx/include/__atomic/atomic_sync.h
    M libcxx/include/__condition_variable/condition_variable.h
    M libcxx/include/__mutex/mutex.h
    M libcxx/include/__thread/formatter.h
    M libcxx/include/__thread/id.h
    M libcxx/include/__thread/jthread.h
    A libcxx/include/__thread/support.h
    A libcxx/include/__thread/support/c11.h
    A libcxx/include/__thread/support/external.h
    A libcxx/include/__thread/support/pthread.h
    A libcxx/include/__thread/support/windows.h
    M libcxx/include/__thread/this_thread.h
    M libcxx/include/__thread/thread.h
    M libcxx/include/__thread/timed_backoff_policy.h
    R libcxx/include/__threading_support
    M libcxx/include/libcxx.imp
    M libcxx/include/module.modulemap.in
    M libcxx/include/mutex
    M libcxx/include/semaphore
    M libcxx/include/thread
    M libcxx/src/call_once.cpp
    M libcxx/src/condition_variable_destructor.cpp
    M libcxx/src/mutex_destructor.cpp
    M libcxx/src/support/win32/thread_win32.cpp
    M libcxx/utils/generate_iwyu_mapping.py
    M libcxx/utils/libcxx/test/modules.py
    M libcxxabi/src/cxa_exception_storage.cpp
    M libcxxabi/src/cxa_guard_impl.h
    M libcxxabi/src/cxa_thread_atexit.cpp
    M libcxxabi/src/fallback_malloc.cpp
    M libcxxabi/test/test_fallback_malloc.pass.cpp

  Log Message:
  -----------
  [libc++] Split the monolithic __threading_support header (#79654)

The <__threading_support> header is a huge beast and it's really
difficult to navigate. I find myself struggling to find what I want
every time I have to open it, and I've been considering splitting it up
for years for that reason.

This patch aims not to contain any functional change. The various
implementations of the threading base are simply moved to separate
headers and then the individual headers are simplified in mechanical
ways. For example, we used to have redundant declarations of all the
functions at the top of `__threading_support`, and those are removed
since they are not needed anymore. The various #ifdefs are also
simplified and removed when they become unnecessary.

Finally, this patch adds documentation for the API we expect from any
threading implementation.


  Commit: e37a6008831b38477516362892dd3c0d97087eff
      https://github.com/llvm/llvm-project/commit/e37a6008831b38477516362892dd3c0d97087eff
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M libcxx/include/__tuple/sfinae_helpers.h
    M libcxx/test/libcxx/utilities/tuple/tuple.tuple/tuple.assign/tuple_array_template_depth.pass.cpp

  Log Message:
  -----------
  [libc++][NFC] Remove dead code implementing some tuple SFINAE checks (#79871)

Some of the checks in sfinae_helpers.h were not used anymore since we
refactored the std::tuple implementation and were now dead code. This
patch removes the code.


  Commit: 4017f04e310454ccced4c404a23f7698eec735ca
      https://github.com/llvm/llvm-project/commit/4017f04e310454ccced4c404a23f7698eec735ca
  Author: Tacet <4922191+AdvenamTacet at users.noreply.github.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M libcxx/include/string

  Log Message:
  -----------
  Remove unnecessary _LIBCPP_STRING_INTERNAL_MEMORY_ACCESS (#79574)

This macro is unnecessary with `basic_string& operator=(value_type
__c)`.


  Commit: c3668779c13596e223c26fbd49670d18cd638c40
      https://github.com/llvm/llvm-project/commit/c3668779c13596e223c26fbd49670d18cd638c40
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M libcxx/docs/ReleaseNotes/19.rst
    M libcxx/include/__string/char_traits.h
    R libcxx/test/libcxx/strings/char.traits/char.traits.specializations/arbitrary_char_type.deprecated.verify.cpp
    R libcxx/test/libcxx/strings/char.traits/char.traits.specializations/arbitrary_char_type.pass.cpp

  Log Message:
  -----------
  [libc++] Remove deprecated char_traits base template (#72694)

This patch has quite a bit of history. First, it must be noted that the
Standard only specifies specializations of char_traits for char,
char8_t, char16_t, char32_t and wchar_t. However, before this patch, we
would provide a base template that accepted anything, and as a result
code like `std::basic_string<long long>` would compile but nobody knows
what it really does. It basically compiles by accident.

We marked the base template as deprecated in LLVM 15 or 16 and were
planning on removing it in LLVM 17, which we did in e30a148b098d.
However, it turned out that the deprecation warning had never been
visible in user code since Clang did not surface that warning from
system headers. As a result, this caught people by surprise and we
decided to reintroduce the base template in LLVM 17 in cce062d226ba.

Since then, #70353 changed Clang so that such deprecation warnings would
be visible from user code. Hence, this patch closes the loop and removes
the deprecated specializations.


  Commit: 837bff11cb7d31f40805c73d4f539960a77eda33
      https://github.com/llvm/llvm-project/commit/837bff11cb7d31f40805c73d4f539960a77eda33
  Author: Sergio Afonso <safonsof at amd.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M flang/include/flang/Lower/Bridge.h
    M flang/include/flang/Optimizer/CodeGen/CGPasses.td
    M flang/include/flang/Optimizer/CodeGen/Target.h
    M flang/include/flang/Optimizer/Dialect/Support/FIRContext.h
    M flang/lib/Frontend/FrontendActions.cpp
    M flang/lib/Lower/Bridge.cpp
    M flang/lib/Optimizer/CodeGen/CodeGen.cpp
    M flang/lib/Optimizer/CodeGen/Target.cpp
    M flang/lib/Optimizer/CodeGen/TargetRewrite.cpp
    M flang/lib/Optimizer/CodeGen/TypeConverter.cpp
    M flang/lib/Optimizer/Dialect/Support/FIRContext.cpp
    M flang/test/Driver/save-mlir-temps.f90
    A flang/test/Fir/target-rewrite-target-cpu.fir
    A flang/test/Fir/target-rewrite-target-features.fir
    A flang/test/Lower/target-features-amdgcn.f90
    A flang/test/Lower/target-features-x86_64.f90
    M flang/tools/bbc/bbc.cpp
    M flang/tools/tco/tco.cpp
    M flang/unittests/Optimizer/FIRContextTest.cpp

  Log Message:
  -----------
  [Flang][Lower] Attach target_cpu and target_features attributes to MLIR functions (#78289)

This patch forwards the target CPU and features information from the
Flang frontend to MLIR func.func operation attributes, which are later
used to populate the target_cpu and target_features llvm.func
attributes.

This is achieved in two stages:

1. Introduce the `fir.target_cpu` and `fir.target_features` module
attributes with information from the target machine immediately after
the initial creation of the MLIR module in the lowering bridge.

2. Update the target rewrite flang pass to get this information from the
module and pass it along to all func.func MLIR operations, respectively
as attributes named `target_cpu` and `target_features`. These attributes
will be automatically picked up during Func to LLVM dialect lowering and
used to initialize the corresponding llvm.func named attributes.

The target rewrite and FIR to LLVM lowering passes are updated with the
ability to override these module attributes, and the `CodeGenSpecifics`
optimizer class is augmented to make this information available to
target-specific MLIR transformations.

This completes a full flow by which target CPU and features make it all
the way from compiler options to LLVM IR function attributes.


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

  Changed paths:
    M lldb/test/API/functionalities/breakpoint/hardware_breakpoints/require_hw_breakpoints/TestRequireHWBreakpoints.py

  Log Message:
  -----------
  [lldb][test][NFC] Refactor xfails in TestRequireHWBreakpoints.py

This file used a strange, multi-level setup where we skipped on
a function we used for xfailing. Let's not do that, just skip
the one test we care about.

Also added a comment to explain how this file works. The tests
*want* calls to fail when we ask for only hardware breaks
but have none to use.

If you don't know that, it all seems backwards.


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

  Changed paths:
    M libc/src/__support/FPUtil/DivisionAndRemainderOperations.h
    M libc/src/__support/FPUtil/FPBits.h
    M libc/src/__support/FPUtil/generic/FMod.h
    M libc/src/__support/FPUtil/generic/sqrt.h
    M libc/src/__support/FPUtil/generic/sqrt_80_bit_long_double.h
    M libc/src/__support/str_to_float.h
    M libc/src/math/generic/acosf.cpp
    M libc/src/math/generic/acoshf.cpp
    M libc/src/math/generic/asinf.cpp
    M libc/src/math/generic/atanhf.cpp
    M libc/src/math/generic/cosf.cpp
    M libc/src/math/generic/log.cpp
    M libc/src/math/generic/log10.cpp
    M libc/src/math/generic/log10f.cpp
    M libc/src/math/generic/log1p.cpp
    M libc/src/math/generic/log1pf.cpp
    M libc/src/math/generic/log2.cpp
    M libc/src/math/generic/log2f.cpp
    M libc/src/math/generic/logf.cpp
    M libc/src/math/generic/powf.cpp
    M libc/src/math/generic/sincosf.cpp
    M libc/src/math/generic/sinf.cpp
    M libc/src/math/generic/tanf.cpp
    M libc/test/UnitTest/FPMatcher.h
    M libc/test/src/__support/FPUtil/fpbits_test.cpp
    M libc/test/src/math/FDimTest.h
    M libc/test/src/math/FmaTest.h
    M libc/test/src/math/HypotTest.h
    M libc/test/src/math/ILogbTest.h
    M libc/test/src/math/LdExpTest.h
    M libc/test/src/math/NextAfterTest.h
    M libc/test/src/math/RIntTest.h
    M libc/test/src/math/RemQuoTest.h
    M libc/test/src/math/RoundToIntegerTest.h
    M libc/test/src/math/smoke/FDimTest.h
    M libc/test/src/math/smoke/FmaTest.h
    M libc/test/src/math/smoke/HypotTest.h
    M libc/test/src/math/smoke/ILogbTest.h
    M libc/test/src/math/smoke/LdExpTest.h
    M libc/test/src/math/smoke/NextAfterTest.h
    M libc/test/src/math/smoke/NextTowardTest.h
    M libc/test/src/math/smoke/RIntTest.h
    M libc/test/src/math/smoke/RemQuoTest.h
    M libc/test/src/math/smoke/RoundToIntegerTest.h
    M libc/test/src/stdio/sprintf_test.cpp
    M libc/test/src/stdio/sscanf_test.cpp

  Log Message:
  -----------
  [libc][NFC] Rename `FPBits` nan functions (#79998)

- [libc][NFC] Rename FPBits nan functions
- rename build_signaling_nan in signaling_nan
- rename build_quiet_nan to quiet_nan


  Commit: 8774d2936dd1cf0ee8d74ff600359d465179d009
      https://github.com/llvm/llvm-project/commit/8774d2936dd1cf0ee8d74ff600359d465179d009
  Author: ita-sc <109672931+ita-sc at users.noreply.github.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp

  Log Message:
  -----------
  [lldb][RISCV] Fix connection error to gdb server for RISC-V (#79990)

This patch fix connection for LLDB for remote gdb server running on
RISC-V.

You can test connection with OpenOCD or qemu-riscv64.


  Commit: 748c29590829cdc0b9572e51d212b3a1d313c318
      https://github.com/llvm/llvm-project/commit/748c29590829cdc0b9572e51d212b3a1d313c318
  Author: Alex Bradbury <asb at igalia.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
    M mlir/lib/Target/LLVMIR/ModuleImport.cpp
    M mlir/lib/Target/LLVMIR/ModuleTranslation.cpp
    M mlir/test/Dialect/LLVMIR/func.mlir
    M mlir/test/Target/LLVMIR/Import/function-attributes.ll
    A mlir/test/Target/LLVMIR/fp-math-function-attributes.mlir

  Log Message:
  -----------
  [MLIR][LLVM] Add fast-math related function attribute support (#79812)

Adds unsafe-fp-math, no-infs-fp-math, no-nans-fp-math,
approx-func-fp-math, and no-signed-zeros-fp-math function attributes.

This allows code generators using the LLVMIR dialect to match the
codegen of Clang.


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

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

  Log Message:
  -----------
  [AArch64] Add custom lowering for load <3 x i8>. (#78632)

Add custom combine to lower load <3 x i8> as the more efficient sequence
below:
   ldrb wX, [x0, #2]
   ldrh wY, [x0]
   orr wX, wY, wX, lsl #16
   fmov s0, wX

At the moment, there are almost no cases in which such vector operations
will be generated automatically. The motivating case is non-power-of-2
SLP vectorization: https://github.com/llvm/llvm-project/pull/77790


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

  Changed paths:
    M llvm/include/llvm/CodeGen/RegisterClassInfo.h
    M llvm/lib/CodeGen/RegisterClassInfo.cpp

  Log Message:
  -----------
  [CodeGen] Use RegUnits in RegisterClassInfo::getLastCalleeSavedAlias (#79996)

Change the implementation of getLastCalleeSavedAlias to use RegUnits
instead of register aliases. This is much faster on targets like AMDGPU
which define a very large number of overlapping register tuples.

No functional change intended. If PhysReg overlaps multiple CSRs then
getLastCalleeSavedAlias(PhysReg) could conceivably return a different
arbitrary one, but currently it is only used for some debug printing
anyway.

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


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

  Changed paths:
    M openmp/libomptarget/DeviceRTL/CMakeLists.txt
    M openmp/libomptarget/DeviceRTL/src/Mapping.cpp
    M openmp/libomptarget/DeviceRTL/src/Misc.cpp
    M openmp/libomptarget/DeviceRTL/src/Synchronization.cpp
    M openmp/libomptarget/DeviceRTL/src/Utils.cpp

  Log Message:
  -----------
  [Libomptarget] Remove remaining inline assembly from the device RTL (#79922)

Summary:
Recent patches have added some missing intrinsic functions NVPTX. This
patch gets rid of all the remaining uses of inline assembly. The one
change that wasn't directly replaced with a built-in was the `pack` and
`unpack` implementations. However, using the generic C implementation is
equivalent to the output SASS when run through PTXAS.


  Commit: 976374d9828582f1ca4a4bb4da96fb67c20949f8
      https://github.com/llvm/llvm-project/commit/976374d9828582f1ca4a4bb4da96fb67c20949f8
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

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

  Log Message:
  -----------
  [SLP][NFC]Use MutableArrayRef instead of SmallVectorImpl&, NFC.


  Commit: 0f9ab7b861268618988c5271e2227b9ab4c1827b
      https://github.com/llvm/llvm-project/commit/0f9ab7b861268618988c5271e2227b9ab4c1827b
  Author: David Benjamin <davidben at google.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M libcxx/include/deque
    M libcxx/test/libcxx/containers/sequences/deque/asan_caterpillar.pass.cpp
    A libcxx/test/libcxx/containers/sequences/deque/assert.pass.cpp

  Log Message:
  -----------
  [libc++][hardening] Add hardening assertions to std::deque (#79397)

This aligns std::deque with std::vector w.r.t. hardening checks. There's
probably more that can be done with iterators, but start with this.

This caught a bug with one of libc++'s tests. One of the erase calls in
asan_caterpillar.pass.cpp was a no-op because the iterators were in the
other order. (deque::erase happened to cleanly do nothing when the
distance is negative.)

Fixes #63809


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

  Changed paths:
    M libc/src/__support/FPUtil/FPBits.h
    M libc/src/math/generic/explogxf.h
    M libc/src/math/generic/hypotf.cpp
    M libc/src/math/generic/log1pf.cpp
    M libc/src/math/generic/range_reduction_fma.h
    M libc/test/src/math/atanhf_test.cpp
    M libc/test/src/math/smoke/atanhf_test.cpp
    M libc/test/src/math/smoke/nan_test.cpp
    M libc/test/src/math/smoke/nanf_test.cpp

  Log Message:
  -----------
  [libc][NFC] Move functions from `FPBits` to `FPRep`, make `bits` member private (#79974)


  Commit: 21d75ee2164015e0023b6ec0067eac731c56448b
      https://github.com/llvm/llvm-project/commit/21d75ee2164015e0023b6ec0067eac731c56448b
  Author: Hristo Hristov <hghristov.rmm at gmail.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M libcxx/docs/Contributing.rst

  Log Message:
  -----------
  [libc++][docs] Add `_LIBCPP_PUSH_MACROS` and `_LIBCPP_POP_MACROS` (#79963)

I got tripped twice after: 7b4622514d232ce5f7110dd8b20d90e81127c467
Let's at least mention these in the `Contributing.rst` doc.


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

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

  Log Message:
  -----------
  [OpenACC] Implement 'gang' clause parsing.

The 'gang' clause takes a 'gang-arg-list', which is one of three 'tag'
values, followed by either an 'int-expr' or a 'size-expr', both of which
we already have parsing functions for.

The optional tag values are only slightly complicated, as one is a
keyword (static), so mild modifications needed to be made for that.


  Commit: a9ffdc171aea346754fd63e9b5986853f2d819e7
      https://github.com/llvm/llvm-project/commit/a9ffdc171aea346754fd63e9b5986853f2d819e7
  Author: Billy Laws <blaws05 at gmail.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M lld/Common/DriverDispatcher.cpp
    M lld/MinGW/Driver.cpp
    M lld/test/MinGW/driver.test

  Log Message:
  -----------
  [lld] [MinGW] Support targeting ARM64EC (#78911)

'arm64ecpe' was chosen arbitrarily as gcc MinGW doesn't provide EC
support.


  Commit: c0f29e83dbcc6789e74918ac6d8d46b8833f45aa
      https://github.com/llvm/llvm-project/commit/c0f29e83dbcc6789e74918ac6d8d46b8833f45aa
  Author: Boian Petkantchin <boian.petkantchin at amd.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M mlir/docs/Dialects/Mesh.md
    M mlir/include/mlir/Dialect/Mesh/IR/MeshOps.td

  Log Message:
  -----------
  [mlir][mesh] Make most collectives pure (#79643)

There are assumptions of matching/consistent paths of execution under SPMD that allow to have pure collective communication operations.


  Commit: 4d3b502704809c9605b9568c6feb2a2f0ca51907
      https://github.com/llvm/llvm-project/commit/4d3b502704809c9605b9568c6feb2a2f0ca51907
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.cnstr/allocs.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.cnstr/converting_copy.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.cnstr/converting_move.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.cnstr/copy.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.cnstr/deduct.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.cnstr/default.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/allocate_size.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/allocate_size.verify.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/allocate_size_hint.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/allocate_size_hint.verify.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct_pair.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct_pair_const_lvalue_pair.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct_pair_piecewise.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct_pair_rvalue.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct_pair_values.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct_type.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/deallocate.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/destroy.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/inner_allocator.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/max_size.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/outer_allocator.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/select_on_container_copy_construction.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.types/allocator_pointers.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.types/inner_allocator_type.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.types/is_always_equal.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.types/propagate_on_container_copy_assignment.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.types/propagate_on_container_move_assignment.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.types/propagate_on_container_swap.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/scoped.adaptor.operators/copy_assign.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/scoped.adaptor.operators/eq.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/scoped.adaptor.operators/move_assign.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/types.pass.cpp

  Log Message:
  -----------
  [libc++][NFC] Format the scoped_allocator_adaptor tests


  Commit: a3e35a4ea6fa8f1d765674c57ad280d1cbeceb4b
      https://github.com/llvm/llvm-project/commit/a3e35a4ea6fa8f1d765674c57ad280d1cbeceb4b
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    A libcxx/test/std/utilities/allocator.adaptor/types.compile.pass.cpp
    R libcxx/test/std/utilities/allocator.adaptor/types.pass.cpp

  Log Message:
  -----------
  [libc++] Move scoped allocator adaptor test to .compile.pass.cpp


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

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

  Log Message:
  -----------
  [gn] port 7162fd750ee5


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

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

  Log Message:
  -----------
  [gn] use write_cmake_config() for __assertion_handler


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

  Changed paths:
    M libc/test/include/CMakeLists.txt

  Log Message:
  -----------
  [libc] Fix running 'stdbit.h' tests if file is never generated

Summary:
This test was added to test the generated header. Unfortunately this
doesn't work if the header is never generated. Add a check to make sure
the user has included it in the list of headers.


  Commit: 00582636009d51c5781b9cae8fde858ab3758306
      https://github.com/llvm/llvm-project/commit/00582636009d51c5781b9cae8fde858ab3758306
  Author: Hirofumi Nakamura <k.nakamura.hirofumi at gmail.com>
  Date:   2024-01-31 (Wed, 31 Jan 2024)

  Changed paths:
    M clang/lib/Format/FormatToken.h
    M clang/lib/Format/FormatTokenLexer.cpp
    M clang/unittests/Format/TokenAnnotatorTest.cpp

  Log Message:
  -----------
  [clang-format] Support of TableGen tokens with unary operator like form, bang operators and numeric literals. (#78996)

Adds the support for tokens that have forms like unary operators.
- bang operators:  `!name`
- cond operator: `!cond`
- numeric literals: `+1`, `-1`
cond operator are one of bang operators but is distinguished because it has very specific syntax.


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

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

  Log Message:
  -----------
  [X86] hasBZHI - simplify to a basic check as there's no need for a switch statement. NFCI.


  Commit: fa10121415adfea57954eddcec92a13c7ebab0ac
      https://github.com/llvm/llvm-project/commit/fa10121415adfea57954eddcec92a13c7ebab0ac
  Author: Ryan Holt <ryanholt at mathworks.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    A mlir/include/mlir/Dialect/MLProgram/Transforms/BufferizableOpInterfaceImpl.h
    M mlir/include/mlir/InitAllDialects.h
    M mlir/lib/Dialect/Bufferization/Transforms/Bufferize.cpp
    M mlir/lib/Dialect/Bufferization/Transforms/OneShotModuleBufferize.cpp
    A mlir/lib/Dialect/MLProgram/Transforms/BufferizableOpInterfaceImpl.cpp
    M mlir/lib/Dialect/MLProgram/Transforms/CMakeLists.txt
    A mlir/test/Dialect/MLProgram/one-shot-bufferize.mlir

  Log Message:
  -----------
  [mlir][MLProgram] Add MLProgram to MemRef bufferization pass (#75103)

There is currently no lowering out of `ml_program` in the LLVM
repository. This change adds a lowering to `memref` so that it can be
lowered all the way to LLVM. This lowering was taken from the [reference
backend in
torch-mlir](https://github.com/llvm/torch-mlir/commit/f41695360019bde71d52ca7548944d5488779e12
).

I had tried implementing the `BufferizableOpInterface` for `ml_program`
instead of adding a new pass but that did not work because
`OneShotBufferize` does not visit module-level ops like
`ml_program.global`.


  Commit: fdf73e949565686804fbd2ab1b3a3bf440a250ca
      https://github.com/llvm/llvm-project/commit/fdf73e949565686804fbd2ab1b3a3bf440a250ca
  Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

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

  Log Message:
  -----------
  [mlir][memref] Remove incorrect `memref.transpose` fold (#79809)

This folded casts into `memref.transpose` without updating the result
type of the transpose op, which resulted in IR that failed to verify for
statically sized memrefs.

i.e.

```mlir
%cast = memref.cast %0 : memref<?x4xf32> to memref<?x?xf32>
%transpose = memref.transpose %cast : memref<?x?xf32> to memref<?x?xf32>
```

would fold to:

```mlir
// Fails verification:
%transpose = memref.transpose %cast : memref<?x4xf32> to memref<?x?xf32>
```


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

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

  Log Message:
  -----------
  [llvm-jitlink] Fix detectStubKind() for big endian systems (#79970)

This function is used in `jitlink-check` lines in LIT tests. In #78371 I
missed to swap initial instruction bytes for systems that store the
constants as big-endian.


  Commit: b23e518ce0df5b0835aba245cda50379bd896374
      https://github.com/llvm/llvm-project/commit/b23e518ce0df5b0835aba245cda50379bd896374
  Author: Thomas Preud'homme <thomas.preudhomme at arm.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

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

  Log Message:
  -----------
  Fix TOSA FP16->INT16 CAST lowering (#79299)

Currently cast from FP to int is implemented by clamping on the min and
max
integer values in the floating-point domain and then converting to
integer. However, the max int values are often non representable in the
floating-point input type due to lack of mantissa bits.

This patch instead use a select acting on a compare against max int + 1
which is representable in floating-point. It also has a special lowering
for cases where the integer range is wider than the floating-point range
to clamp the infinite values.


  Commit: 2960656eb909b5361ce2c3f641ee341769076ab7
      https://github.com/llvm/llvm-project/commit/2960656eb909b5361ce2c3f641ee341769076ab7
  Author: Shengchen Kan <shengchen.kan at intel.com>
  Date:   2024-01-31 (Wed, 31 Jan 2024)

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

  Log Message:
  -----------
  [X86][NFC] Extract code for commute in foldMemoryOperandImpl into functions

To share code for folding broadcast in #79761


  Commit: c5edef6279ecc1469029184637343854243cc5e6
      https://github.com/llvm/llvm-project/commit/c5edef6279ecc1469029184637343854243cc5e6
  Author: Matthias Springer <springerm at google.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M mlir/lib/Dialect/MLProgram/Transforms/CMakeLists.txt
    M mlir/lib/Transforms/Utils/GreedyPatternRewriteDriver.cpp

  Log Message:
  -----------
  [mlir] Fix build after #75103

After #75103, `MLPrgramTransforms` depends on `BufferizationDialect`.
Also fix an unrelated compile error in `GreedyPatternRewriteDriver.cpp`.
(This was not failing on CI. I may be running an old compiler locally.)


  Commit: 223025a6142d14b772e9dc73e5faf507a08098da
      https://github.com/llvm/llvm-project/commit/223025a6142d14b772e9dc73e5faf507a08098da
  Author: Nick Desaulniers <nickdesaulniers at users.noreply.github.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M libc/docs/index.rst
    A libc/docs/stdbit.rst

  Log Message:
  -----------
  [libc][docs] add page for stdbit.h (#79908)

To build libc docs:
- Configure with `-DLLVM_ENABLE_SPHINX=ON -DLIBC_INCLUDE_DOCS=ON`
- Build with `ninja docs-libc-html`


  Commit: cdb320b407fc375f91e4b8be6f0ce8bf6bc77ba1
      https://github.com/llvm/llvm-project/commit/cdb320b407fc375f91e4b8be6f0ce8bf6bc77ba1
  Author: Daniel Chen <cdchen at ca.ibm.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M flang/lib/Lower/CallInterface.cpp
    M flang/lib/Lower/ConvertCall.cpp
    M flang/lib/Lower/ConvertExprToHLFIR.cpp
    M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
    M flang/test/Lower/HLFIR/procedure-pointer.f90
    M flang/test/Lower/Intrinsics/associated-proc-pointers.f90

  Log Message:
  -----------
  [Flang]: Lowering reference to functions that return a procedure pointer (#78194)

This PR adds lowering the reference to a function that returns a
procedure pointer. It also fixed intrinsic ASSOCIATED to take such
argument.

---------

Co-authored-by: jeanPerier <jperier at nvidia.com>


  Commit: fe0d16ff60fa2ef7fdbda3574493534979cce742
      https://github.com/llvm/llvm-project/commit/fe0d16ff60fa2ef7fdbda3574493534979cce742
  Author: Joel Wee <joelwee at google.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M mlir/lib/Dialect/MLProgram/Transforms/BufferizableOpInterfaceImpl.cpp
    M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel

  Log Message:
  -----------
  [mlir] Fix after #75103


  Commit: b9d623105d51f5fc2d120c862b4e2bbff310f728
      https://github.com/llvm/llvm-project/commit/b9d623105d51f5fc2d120c862b4e2bbff310f728
  Author: Vyacheslav Levytskyy <89994100+VyacheslavLevytskyy at users.noreply.github.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
    A llvm/test/CodeGen/SPIRV/unnamed-global.ll

  Log Message:
  -----------
  generate a name of an unnamed global variable for Instruction Selection (#78293)

The goal of this PR is to fix the issue of global unnamed variables
causing SPIR-V Backend code generation to crash:
https://github.com/llvm/llvm-project/issues/78278

The reason for the crash is that GlobalValue's getGlobalIdentifier()
would fail for unnamed global variable when trying to access the first
character of the name (see lib/IR/Globals.cpp:150). This leads to assert
in Debug and undefined behaviour in Release builds.

The proposed fix generates a name of an unnamed global variable as
__unnamed_<unsigned number>, in a style of similar existing LLVM
implementation (see lib/IR/Mangler.cpp:131). A new class member variable
is added into `SPIRVInstructionSelector` class to keep track of the
number we give to anonymous global values to generate the same name
every time when this is needed.

The patch adds a new LIT test with the smallest implementation of
reproducer ll code.


  Commit: 39483797b8981528eafaf6dad557ccfb2312e1ef
      https://github.com/llvm/llvm-project/commit/39483797b8981528eafaf6dad557ccfb2312e1ef
  Author: Vyacheslav Levytskyy <89994100+VyacheslavLevytskyy at users.noreply.github.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
    A llvm/test/CodeGen/SPIRV/token/token-type-preallocated-setup-arg.ll
    A llvm/test/CodeGen/SPIRV/token/token-type-requires-extension.ll

  Log Message:
  -----------
  prevent undefined behaviour of SPIR-V Backend non-asserts builds when dealing with token type (#78437)

The goal of this PR is to fix the issue when use of token type in LLVM
intrinsic causes undefined behavior of SPIR-V Backend code generator
when assertions are disabled:
https://github.com/llvm/llvm-project/issues/78434

Among possible fix options, discussed in the
https://github.com/llvm/llvm-project/issues/78434 issue description, the
option to generate a meaningful error before execution arrives at the
`llvm_unreachable` call looks like a better solution for now, because
SPIR-V doesn't support token type anyway without additional extensions.

The PR is to generate a user-friendly error message and exit without
generating a stack dump when such a usage of token type was detected
that would lead to undefined behavior of SPIR-V Backend code generator.


  Commit: 9e02e8f1a76693f001c7f52ffddd92c492a2254e
      https://github.com/llvm/llvm-project/commit/9e02e8f1a76693f001c7f52ffddd92c492a2254e
  Author: Vyacheslav Levytskyy <89994100+VyacheslavLevytskyy at users.noreply.github.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.cpp
    M llvm/test/CodeGen/SPIRV/opencl/device_execution/execute_block.ll
    A llvm/test/CodeGen/SPIRV/pointers/struct-opaque-pointers.ll

  Log Message:
  -----------
  fix producing multiple identical opaque pointer types (#79060)

This PR fixes https://github.com/llvm/llvm-project/issues/79057 and
improves code generation for opaque pointers by replacing the culprit
SPIRVGlobalRegistry::getOpTypePointer() call with a more appropriate
SPIRVGlobalRegistry::getOrCreateSPIRVPointerType() call. The latter
function works together with the `DuplicatesTracker`
(`SPIRVGeneralDuplicatesTracker DT;` from `class SPIRVGlobalRegistry`)
to trace existence of previous definitions of opaque pointers. This
allows to produce just one `OpTypePointer` command for all identical
opaque pointers definitions and to return the very same type record for
subsequent `SPIRVGlobalRegistry::createSPIRVType()` invocations.

This PR alone improves code generation by producing a single needed
definition per all opaque pointers to i8 of the same address space
instead of multiple identical definitions produced before the patch.
>From the root cause analysis of
https://github.com/llvm/llvm-project/issues/79057 we see also that this
PR resolves the problem of inconsistency between keeping multiple
instruction for identical opaque pointer types and just a single record
for all such instructions in the `DuplicatesTracker`, and so it also
resolves the issue with crashes on creation of a struct with opaque
pointer fields due to the fact that now such struct fields refer to the
same operand `<id>` having a required record in the data structure used
for dependencies analysis (see
https://github.com/llvm/llvm-project/issues/79057).


  Commit: 036a20cc5104153f47762211d89544ab38d3ab5a
      https://github.com/llvm/llvm-project/commit/036a20cc5104153f47762211d89544ab38d3ab5a
  Author: Wanyi <kusmour at gmail.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M llvm/test/tools/llvm-gsymutil/X86/elf-empty-dir.yaml

  Log Message:
  -----------
  [llvm-gsymutil] Remove '--num-threads' in test (#79934)

Number of threads will automatically be set to a good value


  Commit: d17b005e46e240b2c95801a14e2c6fc5baa5b3f7
      https://github.com/llvm/llvm-project/commit/d17b005e46e240b2c95801a14e2c6fc5baa5b3f7
  Author: fabrizio-indirli <fabrizio.indirli at arm.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M mlir/lib/Dialect/SCF/Transforms/ParallelLoopFusion.cpp
    M mlir/test/Dialect/SCF/parallel-loop-fusion.mlir

  Log Message:
  -----------
  [mlir][scf] Relax requirements for loops fusion (#79187)

Enable the fusion of parallel loops also when the 1st loop contains
multiple write accesses to the same buffer, if the accesses are always
on the same indices.
Fix LIT test cases whose loops were not being fused.

Signed-off-by: Fabrizio Indirli <Fabrizio.Indirli at arm.com>


  Commit: b40d5b1b08564d23d5e0769892ebbc32447b2987
      https://github.com/llvm/llvm-project/commit/b40d5b1b08564d23d5e0769892ebbc32447b2987
  Author: Zixu Wang <9819235+zixu-w at users.noreply.github.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst

  Log Message:
  -----------
  [Docs] Add release note about Clang-defined target OS macros (#79879)


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

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

  Log Message:
  -----------
  [IR] Add more efficient getOperand methods to some of the Operator subclasses. (#79943)

ConstantExpr does not use HungOffUses. If we know that the Instruction
the Operator subclass can represent also does not use HungOffUses, we
can be more efficient than falling back to User::getOperand.


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

  Changed paths:
    M llvm/include/llvm/Support/RISCVAttributes.h
    M llvm/lib/Target/RISCV/MCTargetDesc/RISCVTargetStreamer.cpp
    M llvm/unittests/Support/RISCVAttributeParserTest.cpp

  Log Message:
  -----------
  [RISCV] Remove StackAlign attribute enum. NFC (#79946)

The alignment is directly encoded in the attribute. There doesn't seem
to be a good reason to give the possible alignments a name.


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

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

  Log Message:
  -----------
  [ValueTracking] Add experimental_get_vector_length to isKnownNonZero. (#79950)

If the input is non-zero, this intrinsic should also return a non-zero
value.


  Commit: 69cb99f9cb2e8757ad2c09b87fc96d5bff73c490
      https://github.com/llvm/llvm-project/commit/69cb99f9cb2e8757ad2c09b87fc96d5bff73c490
  Author: Felipe de Azevedo Piovezan <fpiovezan at apple.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

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

  Log Message:
  -----------
  [DebugNames] Use hashes to quickly filter false positives (#79755)

The current implementation of DebugNames is _only_ using hashes to
compute the bucket number. Once inside the bucket, it reverts back to
string comparisons, even though not all hashes inside a bucket are
identical.

This commit changes the behavior so that we check the hash before
comparing strings. Such check is so important that it speeds up a simple
benchmark by 20%. In other words, the following expression evaluation
time goes from 1100ms to 850ms.

```
bin/lldb \
		--batch \
		-o "b CodeGenFunction::GenerateCode" \
		-o run \
		-o "expr Fn" \
		-- \
		clang++ -c -g test.cpp -o /dev/null &> output
```

(Note, these numbers are considering the usage of IDX_parent)


  Commit: 9f3854a01f878831c229db0eb5078fa9d56e60ff
      https://github.com/llvm/llvm-project/commit/9f3854a01f878831c229db0eb5078fa9d56e60ff
  Author: michaelrj-google <71531609+michaelrj-google at users.noreply.github.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M libc/config/linux/aarch64/entrypoints.txt
    M libc/config/linux/aarch64/headers.txt
    M libc/config/linux/api.td
    M libc/config/linux/arm/entrypoints.txt
    M libc/config/linux/arm/headers.txt
    M libc/config/linux/riscv/entrypoints.txt
    M libc/config/linux/riscv/headers.txt
    M libc/config/linux/syscall_numbers.h.inc
    M libc/config/linux/x86_64/entrypoints.txt
    M libc/config/linux/x86_64/headers.txt
    M libc/include/CMakeLists.txt
    M libc/include/llvm-libc-types/CMakeLists.txt
    A libc/include/llvm-libc-types/struct_epoll_data.h
    A libc/include/llvm-libc-types/struct_epoll_event.h
    A libc/include/sys/epoll.h.def
    M libc/spec/gnu_ext.td
    M libc/spec/linux.td
    M libc/src/sys/CMakeLists.txt
    A libc/src/sys/epoll/CMakeLists.txt
    A libc/src/sys/epoll/epoll_pwait.h
    A libc/src/sys/epoll/epoll_pwait2.h
    A libc/src/sys/epoll/epoll_wait.h
    A libc/src/sys/epoll/linux/CMakeLists.txt
    A libc/src/sys/epoll/linux/epoll_pwait.cpp
    A libc/src/sys/epoll/linux/epoll_pwait2.cpp
    A libc/src/sys/epoll/linux/epoll_wait.cpp
    M libc/test/src/sys/CMakeLists.txt
    A libc/test/src/sys/epoll/CMakeLists.txt
    A libc/test/src/sys/epoll/linux/CMakeLists.txt
    A libc/test/src/sys/epoll/linux/epoll_pwait2_test.cpp
    A libc/test/src/sys/epoll/linux/epoll_pwait_test.cpp
    A libc/test/src/sys/epoll/linux/epoll_wait_test.cpp
    M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
    A utils/bazel/llvm-project-overlay/libc/test/src/sys/epoll/BUILD.bazel

  Log Message:
  -----------
  [reland][libc] add epoll_wait functions (#79635)

The epoll_wait functions are syscall wrappers that were requested by
upstream users. This patch adds them, as well as their header and types.

The tests are currently incomplete since they require epoll_create to
properly test epoll_wait. That will be added in a followup patch since
this one is already very large.


  Commit: 30155fc0ef4fbdce2d79434aaae8d58b2fabb20a
      https://github.com/llvm/llvm-project/commit/30155fc0ef4fbdce2d79434aaae8d58b2fabb20a
  Author: Tianlan Zhou <bobby825 at 126.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/AST/ExprConstant.cpp
    M clang/lib/CodeGen/CGExpr.cpp
    M clang/lib/Sema/SemaChecking.cpp
    M clang/lib/Sema/SemaOverload.cpp
    A clang/test/AST/ast-dump-static-operators.cpp
    M clang/test/CodeGenCXX/cxx2b-static-call-operator.cpp
    M clang/test/CodeGenCXX/cxx2b-static-subscript-operator.cpp
    A clang/test/SemaCXX/cxx2b-static-operator.cpp

  Log Message:
  -----------
  [clang] static operators should evaluate object argument (#68485)

### Description

clang don't evaluate the object argument of `static operator()` and
`static operator[]` currently, for example:

```cpp
#include <iostream>

struct Foo {
    static int operator()(int x, int y) {
        std::cout << "Foo::operator()" << std::endl;
        return x + y;
    }
    static int operator[](int x, int y) {
        std::cout << "Foo::operator[]" << std::endl;
        return x + y;
    }
};
Foo getFoo() {
    std::cout << "getFoo()" << std::endl;
    return {};
}
int main() {
    std::cout << getFoo()(1, 2) << std::endl;
    std::cout << getFoo()[1, 2] << std::endl;
}
```

`getFoo()` is expected to be called, but clang don't call it currently
(17.0.2). This PR fixes this issue.

Fixes #67976.

### Walkthrough

- **clang/lib/Sema/SemaOverload.cpp**
- **`Sema::CreateOverloadedArraySubscriptExpr` &
`Sema::BuildCallToObjectOfClassType`**
Previously clang generate `CallExpr` for static operators, ignoring the
object argument. In this PR `CXXOperatorCallExpr` is generated for
static operators instead, with the object argument as the first
argument.
  - **`TryObjectArgumentInitialization`**
`const` / `volatile` objects are allowed for static methods, so that we
can call static operators on them.
- **clang/lib/CodeGen/CGExpr.cpp**
  - **`CodeGenFunction::EmitCall`**
CodeGen changes for `CXXOperatorCallExpr` with static operators: emit
and ignore the object argument first, then emit the operator call.
- **clang/lib/AST/ExprConstant.cpp**
  - **`‎ExprEvaluatorBase::handleCallExpr‎`**
Evaluation of static operators in constexpr also need some small changes
to work, so that the arguments won't be out of position.
- **clang/lib/Sema/SemaChecking.cpp**
  - **`Sema::CheckFunctionCall`**
Code for argument checking also need to be modify, or it will fail the
test `clang/test/SemaCXX/overloaded-operator-decl.cpp`.

### Tests

- **Added:**
    - **clang/test/AST/ast-dump-static-operators.cpp**
      Verify the AST generated for static operators.
    - **clang/test/SemaCXX/cxx2b-static-operator.cpp**
Static operators should be able to be called on const / volatile
objects.
- **Modified:**
    - **clang/test/CodeGenCXX/cxx2b-static-call-operator.cpp**
    - **clang/test/CodeGenCXX/cxx2b-static-subscript-operator.cpp**
      Matching the new CodeGen.

### Documentation

- **clang/docs/ReleaseNotes.rst**
  Update release notes.

---------

Co-authored-by: Shafik Yaghmour <shafik at users.noreply.github.com>
Co-authored-by: cor3ntin <corentinjabot at gmail.com>
Co-authored-by: Aaron Ballman <aaron at aaronballman.com>


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

  Changed paths:
    M bolt/include/bolt/Rewrite/MetadataManager.h
    M bolt/include/bolt/Rewrite/MetadataRewriter.h
    M bolt/include/bolt/Rewrite/RewriteInstance.h
    M bolt/lib/Rewrite/LinuxKernelRewriter.cpp
    M bolt/lib/Rewrite/MetadataManager.cpp
    M bolt/lib/Rewrite/RewriteInstance.cpp
    A bolt/test/X86/linux-orc.s
    R bolt/test/X86/orc_unwind.s
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/AST/ComparisonCategories.h
    M clang/include/clang/AST/Expr.h
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/include/clang/Basic/OpenACCKinds.h
    M clang/include/clang/Parse/Parser.h
    M clang/lib/AST/ComparisonCategories.cpp
    M clang/lib/AST/Expr.cpp
    M clang/lib/AST/ExprConstant.cpp
    M clang/lib/Analysis/CFG.cpp
    M clang/lib/CodeGen/CGExpr.cpp
    M clang/lib/CodeGen/CGExprConstant.cpp
    M clang/lib/Format/FormatToken.h
    M clang/lib/Format/FormatTokenLexer.cpp
    M clang/lib/Parse/ParseOpenACC.cpp
    M clang/lib/Sema/JumpDiagnostics.cpp
    M clang/lib/Sema/SemaChecking.cpp
    M clang/lib/Sema/SemaConcept.cpp
    M clang/lib/Sema/SemaDecl.cpp
    M clang/lib/Sema/SemaOverload.cpp
    M clang/lib/StaticAnalyzer/Core/Environment.cpp
    A clang/test/AST/ast-dump-static-operators.cpp
    M clang/test/Analysis/templates.cpp
    M clang/test/CXX/class.access/p4.cpp
    A clang/test/CXX/dcl.dcl/dcl.enum/p1.cpp
    M clang/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.type.elab/p1.cpp
    M clang/test/CXX/drs/dr16xx.cpp
    M clang/test/CXX/module/module.interface/p2-2.cpp
    M clang/test/CodeGen/attr-target-version.c
    M clang/test/CodeGenCXX/cxx2b-static-call-operator.cpp
    M clang/test/CodeGenCXX/cxx2b-static-subscript-operator.cpp
    M clang/test/ParserOpenACC/parse-clauses.c
    A clang/test/SemaCXX/cxx2b-static-operator.cpp
    M clang/test/SemaCXX/enum-scoped.cpp
    M clang/test/SemaCXX/nested-name-spec.cpp
    M clang/test/SemaTemplate/concepts-out-of-line-def.cpp
    M clang/test/SemaTemplate/deduction.cpp
    M clang/test/SemaTemplate/elaborated-type-specifier.cpp
    M clang/test/SemaTemplate/qualified-id.cpp
    M clang/test/SemaTemplate/temp_arg_nontype_cxx20.cpp
    M clang/tools/diagtool/TreeView.cpp
    M clang/unittests/Format/TokenAnnotatorTest.cpp
    M flang/include/flang/Evaluate/characteristics.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/lib/Evaluate/characteristics.cpp
    M flang/lib/Frontend/FrontendActions.cpp
    M flang/lib/Lower/Bridge.cpp
    M flang/lib/Lower/CallInterface.cpp
    M flang/lib/Lower/ConvertCall.cpp
    M flang/lib/Lower/ConvertExprToHLFIR.cpp
    M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
    M flang/lib/Optimizer/CodeGen/CodeGen.cpp
    M flang/lib/Optimizer/CodeGen/Target.cpp
    M flang/lib/Optimizer/CodeGen/TargetRewrite.cpp
    M flang/lib/Optimizer/CodeGen/TypeConverter.cpp
    M flang/lib/Optimizer/Dialect/Support/FIRContext.cpp
    M flang/lib/Semantics/check-declarations.cpp
    M flang/test/Driver/save-mlir-temps.f90
    A flang/test/Fir/target-rewrite-target-cpu.fir
    A flang/test/Fir/target-rewrite-target-features.fir
    M flang/test/Lower/HLFIR/procedure-pointer.f90
    M flang/test/Lower/Intrinsics/associated-proc-pointers.f90
    A flang/test/Lower/target-features-amdgcn.f90
    A flang/test/Lower/target-features-x86_64.f90
    M flang/test/Semantics/generic05.F90
    M flang/test/Semantics/generic07.f90
    M flang/test/Semantics/resolve17.f90
    M flang/test/Semantics/resolve53.f90
    M flang/test/Semantics/resolve54.f90
    M flang/test/Semantics/resolve65.f90
    M flang/test/Semantics/resolve96.f90
    M flang/tools/bbc/bbc.cpp
    M flang/tools/tco/tco.cpp
    M flang/unittests/Optimizer/FIRContextTest.cpp
    M libc/config/linux/aarch64/entrypoints.txt
    M libc/config/linux/aarch64/headers.txt
    M libc/config/linux/api.td
    M libc/config/linux/arm/entrypoints.txt
    M libc/config/linux/arm/headers.txt
    M libc/config/linux/riscv/entrypoints.txt
    M libc/config/linux/riscv/headers.txt
    M libc/config/linux/syscall_numbers.h.inc
    M libc/config/linux/x86_64/entrypoints.txt
    M libc/config/linux/x86_64/headers.txt
    M libc/docs/index.rst
    A libc/docs/stdbit.rst
    M libc/include/CMakeLists.txt
    M libc/include/llvm-libc-types/CMakeLists.txt
    A libc/include/llvm-libc-types/struct_epoll_data.h
    A libc/include/llvm-libc-types/struct_epoll_event.h
    A libc/include/sys/epoll.h.def
    M libc/spec/gnu_ext.td
    M libc/spec/linux.td
    M libc/src/__support/FPUtil/DivisionAndRemainderOperations.h
    M libc/src/__support/FPUtil/FPBits.h
    M libc/src/__support/FPUtil/generic/FMod.h
    M libc/src/__support/FPUtil/generic/sqrt.h
    M libc/src/__support/FPUtil/generic/sqrt_80_bit_long_double.h
    M libc/src/__support/str_to_float.h
    M libc/src/math/generic/acosf.cpp
    M libc/src/math/generic/acoshf.cpp
    M libc/src/math/generic/asinf.cpp
    M libc/src/math/generic/atanhf.cpp
    M libc/src/math/generic/cosf.cpp
    M libc/src/math/generic/explogxf.h
    M libc/src/math/generic/hypotf.cpp
    M libc/src/math/generic/log.cpp
    M libc/src/math/generic/log10.cpp
    M libc/src/math/generic/log10f.cpp
    M libc/src/math/generic/log1p.cpp
    M libc/src/math/generic/log1pf.cpp
    M libc/src/math/generic/log2.cpp
    M libc/src/math/generic/log2f.cpp
    M libc/src/math/generic/logf.cpp
    M libc/src/math/generic/powf.cpp
    M libc/src/math/generic/range_reduction_fma.h
    M libc/src/math/generic/sincosf.cpp
    M libc/src/math/generic/sinf.cpp
    M libc/src/math/generic/tanf.cpp
    M libc/src/sys/CMakeLists.txt
    A libc/src/sys/epoll/CMakeLists.txt
    A libc/src/sys/epoll/epoll_pwait.h
    A libc/src/sys/epoll/epoll_pwait2.h
    A libc/src/sys/epoll/epoll_wait.h
    A libc/src/sys/epoll/linux/CMakeLists.txt
    A libc/src/sys/epoll/linux/epoll_pwait.cpp
    A libc/src/sys/epoll/linux/epoll_pwait2.cpp
    A libc/src/sys/epoll/linux/epoll_wait.cpp
    M libc/test/UnitTest/FPMatcher.h
    M libc/test/include/CMakeLists.txt
    M libc/test/src/__support/FPUtil/fpbits_test.cpp
    M libc/test/src/math/FDimTest.h
    M libc/test/src/math/FmaTest.h
    M libc/test/src/math/HypotTest.h
    M libc/test/src/math/ILogbTest.h
    M libc/test/src/math/LdExpTest.h
    M libc/test/src/math/NextAfterTest.h
    M libc/test/src/math/RIntTest.h
    M libc/test/src/math/RemQuoTest.h
    M libc/test/src/math/RoundToIntegerTest.h
    M libc/test/src/math/atanhf_test.cpp
    M libc/test/src/math/smoke/FDimTest.h
    M libc/test/src/math/smoke/FmaTest.h
    M libc/test/src/math/smoke/HypotTest.h
    M libc/test/src/math/smoke/ILogbTest.h
    M libc/test/src/math/smoke/LdExpTest.h
    M libc/test/src/math/smoke/NextAfterTest.h
    M libc/test/src/math/smoke/NextTowardTest.h
    M libc/test/src/math/smoke/RIntTest.h
    M libc/test/src/math/smoke/RemQuoTest.h
    M libc/test/src/math/smoke/RoundToIntegerTest.h
    M libc/test/src/math/smoke/atanhf_test.cpp
    M libc/test/src/math/smoke/nan_test.cpp
    M libc/test/src/math/smoke/nanf_test.cpp
    M libc/test/src/stdio/sprintf_test.cpp
    M libc/test/src/stdio/sscanf_test.cpp
    M libc/test/src/sys/CMakeLists.txt
    A libc/test/src/sys/epoll/CMakeLists.txt
    A libc/test/src/sys/epoll/linux/CMakeLists.txt
    A libc/test/src/sys/epoll/linux/epoll_pwait2_test.cpp
    A libc/test/src/sys/epoll/linux/epoll_pwait_test.cpp
    A libc/test/src/sys/epoll/linux/epoll_wait_test.cpp
    M libcxx/docs/Contributing.rst
    M libcxx/docs/DesignDocs/ThreadingSupportAPI.rst
    M libcxx/docs/ReleaseNotes/19.rst
    M libcxx/include/CMakeLists.txt
    M libcxx/include/__atomic/atomic_flag.h
    M libcxx/include/__atomic/atomic_sync.h
    M libcxx/include/__condition_variable/condition_variable.h
    M libcxx/include/__config
    M libcxx/include/__format/format_functions.h
    M libcxx/include/__mutex/mutex.h
    M libcxx/include/__string/char_traits.h
    M libcxx/include/__thread/formatter.h
    M libcxx/include/__thread/id.h
    M libcxx/include/__thread/jthread.h
    A libcxx/include/__thread/support.h
    A libcxx/include/__thread/support/c11.h
    A libcxx/include/__thread/support/external.h
    A libcxx/include/__thread/support/pthread.h
    A libcxx/include/__thread/support/windows.h
    M libcxx/include/__thread/this_thread.h
    M libcxx/include/__thread/thread.h
    M libcxx/include/__thread/timed_backoff_policy.h
    R libcxx/include/__threading_support
    M libcxx/include/__tuple/sfinae_helpers.h
    M libcxx/include/__utility/pair.h
    M libcxx/include/deque
    M libcxx/include/libcxx.imp
    M libcxx/include/module.modulemap.in
    M libcxx/include/mutex
    M libcxx/include/semaphore
    M libcxx/include/string
    M libcxx/include/thread
    M libcxx/include/tuple
    M libcxx/include/vector
    M libcxx/modules/std/atomic.inc
    M libcxx/modules/std/iosfwd.inc
    M libcxx/modules/std/string.inc
    M libcxx/modules/std/string_view.inc
    M libcxx/src/call_once.cpp
    M libcxx/src/condition_variable_destructor.cpp
    M libcxx/src/mutex_destructor.cpp
    M libcxx/src/support/win32/thread_win32.cpp
    M libcxx/test/libcxx/containers/sequences/deque/asan_caterpillar.pass.cpp
    A libcxx/test/libcxx/containers/sequences/deque/assert.pass.cpp
    R libcxx/test/libcxx/strings/char.traits/char.traits.specializations/arbitrary_char_type.deprecated.verify.cpp
    R libcxx/test/libcxx/strings/char.traits/char.traits.specializations/arbitrary_char_type.pass.cpp
    M libcxx/test/libcxx/utilities/tuple/tuple.tuple/tuple.assign/tuple_array_template_depth.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.cnstr/allocs.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.cnstr/converting_copy.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.cnstr/converting_move.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.cnstr/copy.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.cnstr/deduct.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.cnstr/default.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/allocate_size.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/allocate_size.verify.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/allocate_size_hint.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/allocate_size_hint.verify.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct_pair.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct_pair_const_lvalue_pair.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct_pair_piecewise.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct_pair_rvalue.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct_pair_values.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct_type.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/deallocate.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/destroy.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/inner_allocator.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/max_size.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/outer_allocator.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/select_on_container_copy_construction.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.types/allocator_pointers.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.types/inner_allocator_type.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.types/is_always_equal.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.types/propagate_on_container_copy_assignment.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.types/propagate_on_container_move_assignment.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.types/propagate_on_container_swap.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/scoped.adaptor.operators/copy_assign.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/scoped.adaptor.operators/eq.pass.cpp
    M libcxx/test/std/utilities/allocator.adaptor/scoped.adaptor.operators/move_assign.pass.cpp
    A libcxx/test/std/utilities/allocator.adaptor/types.compile.pass.cpp
    R libcxx/test/std/utilities/allocator.adaptor/types.pass.cpp
    M libcxx/utils/generate_iwyu_mapping.py
    M libcxx/utils/libcxx/test/modules.py
    M libcxxabi/src/cxa_exception_storage.cpp
    M libcxxabi/src/cxa_guard_impl.h
    M libcxxabi/src/cxa_thread_atexit.cpp
    M libcxxabi/src/fallback_malloc.cpp
    M libcxxabi/test/test_fallback_malloc.pass.cpp
    M lld/Common/DriverDispatcher.cpp
    M lld/MachO/Driver.cpp
    M lld/MachO/SyntheticSections.cpp
    M lld/MachO/SyntheticSections.h
    M lld/MachO/Writer.cpp
    M lld/MinGW/Driver.cpp
    A lld/test/MachO/arm64-objc-stubs-dead.s
    M lld/test/MinGW/driver.test
    M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
    M lldb/test/API/functionalities/breakpoint/hardware_breakpoints/require_hw_breakpoints/TestRequireHWBreakpoints.py
    M llvm/docs/GitHub.rst
    M llvm/docs/MyFirstTypoFix.rst
    M llvm/include/llvm/CodeGen/RegisterClassInfo.h
    M llvm/include/llvm/CodeGen/TargetRegisterInfo.h
    M llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h
    M llvm/include/llvm/IR/Operator.h
    M llvm/include/llvm/MC/MCRegisterInfo.h
    M llvm/include/llvm/Support/RISCVAttributes.h
    M llvm/include/llvm/TargetParser/AArch64TargetParser.h
    M llvm/include/llvm/TextAPI/InterfaceFile.h
    M llvm/include/llvm/TextAPI/Record.h
    M llvm/include/llvm/TextAPI/RecordsSlice.h
    M llvm/include/llvm/TextAPI/Symbol.h
    M llvm/include/llvm/TextAPI/SymbolSet.h
    M llvm/lib/Analysis/StackSafetyAnalysis.cpp
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/lib/CodeGen/RegisterClassInfo.cpp
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    M llvm/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp
    M llvm/lib/DebugInfo/GSYM/GsymCreator.cpp
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUInstCombineIntrinsic.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUMachineCFGStructurizer.cpp
    M llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp
    M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCCodeEmitter.cpp
    M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
    M llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
    M llvm/lib/Target/Mips/MipsBranchExpansion.cpp
    M llvm/lib/Target/RISCV/MCTargetDesc/RISCVTargetStreamer.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
    M llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
    M llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.cpp
    M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
    M llvm/lib/Target/TargetMachine.cpp
    M llvm/lib/Target/X86/MCTargetDesc/X86EncodingOptimization.cpp
    M llvm/lib/Target/X86/MCTargetDesc/X86EncodingOptimizationForImmediate.def
    M llvm/lib/Target/X86/X86CompressEVEX.cpp
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/lib/Target/X86/X86InstrInfo.cpp
    M llvm/lib/Target/X86/X86InstrInfo.h
    M llvm/lib/TextAPI/RecordVisitor.cpp
    M llvm/lib/TextAPI/RecordsSlice.cpp
    M llvm/lib/TextAPI/Symbol.cpp
    M llvm/lib/TextAPI/SymbolSet.cpp
    M llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
    M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Analysis/CostModel/RISCV/reduce-max.ll
    M llvm/test/Analysis/CostModel/RISCV/reduce-min.ll
    M llvm/test/Analysis/CostModel/RISCV/reduce-scalable-fp.ll
    M llvm/test/Analysis/CostModel/RISCV/reduce-scalable-int.ll
    A llvm/test/Analysis/StackSafetyAnalysis/extend-ptr.ll
    M llvm/test/Analysis/StackSafetyAnalysis/local.ll
    M llvm/test/Analysis/ValueTracking/known-non-zero.ll
    M llvm/test/CodeGen/AArch64/vec3-loads-ext-trunc-stores.ll
    M llvm/test/CodeGen/RISCV/rvv/vselect-vp.ll
    M llvm/test/CodeGen/SPIRV/opencl/device_execution/execute_block.ll
    A llvm/test/CodeGen/SPIRV/pointers/struct-opaque-pointers.ll
    A llvm/test/CodeGen/SPIRV/token/token-type-preallocated-setup-arg.ll
    A llvm/test/CodeGen/SPIRV/token/token-type-requires-extension.ll
    A llvm/test/CodeGen/SPIRV/unnamed-global.ll
    M llvm/test/CodeGen/X86/apx/adc.ll
    M llvm/test/CodeGen/X86/apx/add.ll
    M llvm/test/CodeGen/X86/apx/and.ll
    M llvm/test/CodeGen/X86/apx/compress-evex.mir
    M llvm/test/CodeGen/X86/apx/or.ll
    M llvm/test/CodeGen/X86/apx/rol.ll
    M llvm/test/CodeGen/X86/apx/sar.ll
    M llvm/test/CodeGen/X86/apx/sbb.ll
    M llvm/test/CodeGen/X86/apx/shift-eflags.ll
    M llvm/test/CodeGen/X86/apx/shr.ll
    M llvm/test/CodeGen/X86/apx/sub.ll
    M llvm/test/CodeGen/X86/apx/xor.ll
    M llvm/test/CodeGen/X86/code-model-elf.ll
    M llvm/test/CodeGen/X86/popcnt.ll
    A llvm/test/Instrumentation/AddressSanitizer/AMDGPU/asan_instrument_mem_intrinsics.ll
    M llvm/test/Instrumentation/MemorySanitizer/msan_asm_conservative.ll
    A llvm/test/MC/X86/apx/adc-reloc.s
    A llvm/test/MC/X86/apx/add-reloc.s
    A llvm/test/MC/X86/apx/and-reloc.s
    A llvm/test/MC/X86/apx/imul-reloc.s
    A llvm/test/MC/X86/apx/or-reloc.s
    A llvm/test/MC/X86/apx/rcl-encopt.s
    A llvm/test/MC/X86/apx/rcr-encopt.s
    A llvm/test/MC/X86/apx/rol-encopt.s
    A llvm/test/MC/X86/apx/ror-encopt.s
    A llvm/test/MC/X86/apx/sar-encopt.s
    A llvm/test/MC/X86/apx/sbb-reloc.s
    A llvm/test/MC/X86/apx/shl-encopt.s
    A llvm/test/MC/X86/apx/shr-encopt.s
    A llvm/test/MC/X86/apx/sub-reloc.s
    A llvm/test/MC/X86/apx/xor-reloc.s
    A llvm/test/tools/llvm-gsymutil/X86/elf-empty-dir.yaml
    A llvm/test/tools/llvm-readtapi/stubify-ehtypes.test
    M llvm/tools/lli/lli.cpp
    M llvm/tools/llvm-jitlink/llvm-jitlink.cpp
    M llvm/unittests/CodeGen/MachineInstrTest.cpp
    M llvm/unittests/Support/RISCVAttributeParserTest.cpp
    M llvm/unittests/TextAPI/RecordTests.cpp
    M llvm/unittests/TextAPI/TextStubV5Tests.cpp
    M llvm/utils/TableGen/RegisterInfoEmitter.cpp
    M llvm/utils/TableGen/X86ManualCompressEVEXTables.def
    M llvm/utils/gn/secondary/libcxx/include/BUILD.gn
    M mlir/docs/Dialects/Mesh.md
    M mlir/include/mlir/Dialect/Arith/IR/ArithOps.td
    M mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
    A mlir/include/mlir/Dialect/MLProgram/Transforms/BufferizableOpInterfaceImpl.h
    M mlir/include/mlir/Dialect/Mesh/IR/MeshOps.td
    M mlir/include/mlir/IR/EnumAttr.td
    M mlir/include/mlir/InitAllDialects.h
    M mlir/lib/Conversion/ArithToLLVM/ArithToLLVM.cpp
    M mlir/lib/Conversion/ArithToSPIRV/ArithToSPIRV.cpp
    M mlir/lib/Conversion/MemRefToSPIRV/MapMemRefStorageClassPass.cpp
    M mlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp
    M mlir/lib/Dialect/Arith/IR/ArithCanonicalization.td
    M mlir/lib/Dialect/Arith/IR/ArithOps.cpp
    M mlir/lib/Dialect/Bufferization/Transforms/Bufferize.cpp
    M mlir/lib/Dialect/Bufferization/Transforms/OneShotModuleBufferize.cpp
    A mlir/lib/Dialect/MLProgram/Transforms/BufferizableOpInterfaceImpl.cpp
    M mlir/lib/Dialect/MLProgram/Transforms/CMakeLists.txt
    M mlir/lib/Dialect/MemRef/IR/MemRefOps.cpp
    M mlir/lib/Dialect/SCF/Transforms/ParallelLoopFusion.cpp
    M mlir/lib/Dialect/Tensor/IR/TensorOps.cpp
    M mlir/lib/Dialect/Vector/Transforms/VectorEmulateNarrowType.cpp
    M mlir/lib/Target/LLVMIR/ModuleImport.cpp
    M mlir/lib/Target/LLVMIR/ModuleTranslation.cpp
    M mlir/lib/Transforms/Utils/GreedyPatternRewriteDriver.cpp
    M mlir/test/Conversion/ArithToLLVM/arith-to-llvm.mlir
    M mlir/test/Conversion/ArithToSPIRV/arith-to-spirv.mlir
    M mlir/test/Conversion/TosaToLinalg/tosa-to-linalg.mlir
    M mlir/test/Dialect/Arith/ops.mlir
    M mlir/test/Dialect/LLVMIR/func.mlir
    A mlir/test/Dialect/MLProgram/one-shot-bufferize.mlir
    M mlir/test/Dialect/MemRef/canonicalize.mlir
    M mlir/test/Dialect/SCF/parallel-loop-fusion.mlir
    M mlir/test/Dialect/Tensor/canonicalize.mlir
    M mlir/test/Dialect/Vector/vector-rewrite-narrow-types.mlir
    M mlir/test/IR/enum-attr-roundtrip.mlir
    M mlir/test/Target/LLVMIR/Import/function-attributes.ll
    A mlir/test/Target/LLVMIR/fp-math-function-attributes.mlir
    M mlir/test/lib/Dialect/Test/TestOps.td
    M openmp/libomptarget/DeviceRTL/CMakeLists.txt
    M openmp/libomptarget/DeviceRTL/src/Mapping.cpp
    M openmp/libomptarget/DeviceRTL/src/Misc.cpp
    M openmp/libomptarget/DeviceRTL/src/Synchronization.cpp
    M openmp/libomptarget/DeviceRTL/src/Utils.cpp
    M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
    A utils/bazel/llvm-project-overlay/libc/test/src/sys/epoll/BUILD.bazel
    M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel

  Log Message:
  -----------
  use StoreInst when size<=32, similar to -ftrivial-auto-init=

Created using spr 1.3.4


Compare: https://github.com/llvm/llvm-project/compare/07043d27155f...d0bd88e27e37


More information about the All-commits mailing list