LLVM/project 2f28e1dlibcxx/include/__ranges stride_view.h, libcxx/test/std/ranges/range.adaptors/range.stride.view types.h end.pass.cpp

[libc++] Implement P1899 `ranges::stride_view` (#65200)

Implement `ranges::stride_view` in libc++. This PR was migrated from
Phabricator (https://reviews.llvm.org/D156924).

Closes #105198

Co-authored-by: Louis Dionne <ldionne.2 at gmail.com>
Co-authored-by: A. Jiang <de34 at live.cn>
DeltaFile
+410-0libcxx/include/__ranges/stride_view.h
+290-0libcxx/test/std/ranges/range.adaptors/range.stride.view/types.h
+222-0libcxx/test/std/ranges/range.adaptors/range.stride.view/end.pass.cpp
+211-0libcxx/test/std/ranges/range.adaptors/range.stride.view/iterator/increment.pass.cpp
+194-0libcxx/test/std/ranges/range.adaptors/range.stride.view/iterator/minus.pass.cpp
+165-0libcxx/test/std/ranges/range.adaptors/range.stride.view/iterator/ctor.copy.pass.cpp
+1,492-039 files not shown
+3,929-245 files

LLVM/project 3e10b2fclang/lib/Basic/Targets AVR.h, clang/test/CodeGen/avr issue-176830.c

[clang] Fix incorrect register information for AVR (#193940)
DeltaFile
+17-0clang/test/CodeGen/avr/issue-176830.c
+6-8clang/lib/Basic/Targets/AVR.h
+23-82 files

LLVM/project 61f311dllvm/lib/Target/AVR AVRAsmPrinter.cpp, llvm/test/CodeGen/AVR issue-176830.ll

[AVR] Fix a bug in printing assembly operand with extra code (#193964)
DeltaFile
+15-0llvm/test/CodeGen/AVR/issue-176830.ll
+2-5llvm/lib/Target/AVR/AVRAsmPrinter.cpp
+17-52 files

LLVM/project 87051f3lldb/include/lldb/Utility StringExtractorGDBRemote.h, lldb/packages/Python/lldbsuite/test/tools/lldb-server gdbremote_testcase.py

[lldb-server] Implement support for MultiBreakpoint packet

This is fairly straightforward, thanks to the helper functions created
in the previous commit.

https://github.com/llvm/llvm-project/pull/192910
DeltaFile
+63-0lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
+2-0lldb/source/Utility/StringExtractorGDBRemote.cpp
+2-0lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.h
+1-0lldb/include/lldb/Utility/StringExtractorGDBRemote.h
+0-1lldb/test/API/functionalities/multi-breakpoint/TestMultiBreakpoint.py
+1-0lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py
+69-16 files

LLVM/project cbb2607lldb/source/Plugins/Process/gdb-remote GDBRemoteCommunicationServerLLGS.cpp GDBRemoteCommunicationServerLLGS.h

fixup! Replace BreakpointResult with a std::variant
DeltaFile
+43-41lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
+9-15lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.h
+52-562 files

LLVM/project ace1ecblldb/source/Plugins/Process/gdb-remote GDBRemoteCommunicationServerLLGS.cpp

fixup! Replace BreakpointKind with a std::variant
DeltaFile
+28-52lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
+28-521 files

LLVM/project 45ca010lldb/source/Plugins/Process/gdb-remote GDBRemoteCommunicationServerLLGS.cpp

fixup! uncontroversial review comments
DeltaFile
+9-8lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
+9-81 files

LLVM/project f57cb31lldb/source/Plugins/Process/gdb-remote GDBRemoteCommunicationServerLLGS.cpp GDBRemoteCommunicationServerLLGS.h

[lldb-server][NFC] Factor out code handling breakpoint packets

This commit extracts the code handling breakpoint packets into a helper
function that can be used by a future implementation of the
MultiBreakpointPacket.

It is meant to be purely NFC.

There are two functions handling breakpoint packets (`handle_Z`
and `handle_z`) with a lot of repeated code. This commit did not attempt
to merge the two, as that would make the diff much larger due to subtle
differences in the error message produced by the two. The only
deduplication done is in the code processing a GDBStoppointType, where a
helper struct (`BreakpointKind`) and function (`std::optional<BreakpointKind> getBreakpointKind(GDBStoppointType stoppoint_type)`) was created.

https://github.com/llvm/llvm-project/pull/192910
DeltaFile
+147-105lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
+28-0lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.h
+175-1052 files

LLVM/project 422e30flldb/test/API/functionalities/multi-breakpoint TestMultiBreakpoint.py

fixup! address review feedback
DeltaFile
+12-0lldb/test/API/functionalities/multi-breakpoint/TestMultiBreakpoint.py
+12-01 files

LLVM/project 012f32blldb/test/API/functionalities/multi-breakpoint TestMultiBreakpoint.py main.c, lldb/tools/debugserver/source RNBRemote.cpp JSON.h

[debugserver] Implement MultiBreakpoint

This implements the packet as described in https://github.com/llvm/llvm-project/pull/192910
DeltaFile
+191-0lldb/test/API/functionalities/multi-breakpoint/TestMultiBreakpoint.py
+71-0lldb/tools/debugserver/source/RNBRemote.cpp
+7-0lldb/test/API/functionalities/multi-breakpoint/main.c
+3-0lldb/test/API/functionalities/multi-breakpoint/Makefile
+2-0lldb/tools/debugserver/source/JSON.h
+2-0lldb/tools/debugserver/source/RNBRemote.h
+276-06 files

LLVM/project 5c73c7alldb/docs/resources lldbgdbremote.md

[lldb] Propose MultiBreakpoint extension to GDB Remote (#192910)

This describes the packet discussed in the RFC:
https://discourse.llvm.org/t/rfc-a-new-packet-to-set-remove-multiple-breakpoints/90623

The following PRs are related:

* [[lldb] Propose MultiBreakpoint extension to GDB
Remote](https://github.com/llvm/llvm-project/pull/192910)
* [[debugserver] Implement
MultiBreakpoint](https://github.com/llvm/llvm-project/pull/192914)
* [[lldb-server][NFC] Factor out code handling breakpoint
packets](https://github.com/llvm/llvm-project/pull/192915)
* [[lldb-server] Implement support for MultiBreakpoint
packet](https://github.com/llvm/llvm-project/pull/192919)
* [[lldb][GDBRemote] Parse MultiBreakpoint+
capability](https://github.com/llvm/llvm-project/pull/192962)
* [[lldb][NFC] Move BreakpointSite::IsEnabled/SetEnabled into
Process](https://github.com/llvm/llvm-project/pull/192964)

    [3 lines not shown]
DeltaFile
+56-0lldb/docs/resources/lldbgdbremote.md
+56-01 files

LLVM/project 4ed3638compiler-rt/include/sanitizer asan_interface.h, compiler-rt/lib/asan asan_report.cpp asan_interceptors_memintrinsics.h

[asan] API for getting multiple pointer ranges (#181446)

Add an API that, unlike __asan_get_report_address(), can return multiple
addresses and sizes. This allows a handler to inspect the source and the
destination ranges of errors that have more than one pointer involved
(e.g., memcpy-param-overlap).

Fixes #155406.

Assisted-by: Gemini

---------

Co-authored-by: Vitaly Buka <vitalybuka at google.com>
DeltaFile
+145-3compiler-rt/lib/asan/asan_report.cpp
+71-0compiler-rt/test/asan/TestCases/debug_invalid_pointer_pair.cpp
+60-0compiler-rt/test/asan/TestCases/debug_negative_size.cpp
+59-0compiler-rt/test/asan/TestCases/debug_memcpy_overlap.cpp
+50-0compiler-rt/include/sanitizer/asan_interface.h
+25-25compiler-rt/lib/asan/asan_interceptors_memintrinsics.h
+410-286 files not shown
+463-4212 files

LLVM/project 6443e9bclang/test/CXX/drs cwg18xx.cpp cwg16xx.cpp, clang/www cxx_dr_status.html

[clang] Tests for CWG1670 and CWG1878: `auto` in conversion functions (#187850)

This PR adds tests for
[CWG1670](https://cplusplus.github.io/CWG/issues/1670.html) "`auto` as
_conversion-type-id_" and
[CWG1878](https://cplusplus.github.io/CWG/issues/1878.html) "`operator
auto` template". The long and short of it is that placeholder type
specifier (`auto`) cannot be used to declare conversion function or
conversion function template. We've always diagnosed template case but
not non-template case.
DeltaFile
+12-1clang/test/CXX/drs/cwg18xx.cpp
+9-0clang/test/CXX/drs/cwg16xx.cpp
+2-2clang/www/cxx_dr_status.html
+23-33 files

LLVM/project 0ec82abclang/test/CXX/drs cwg25xx.cpp

[clang] Enable part of CWG2598 test in C++20 mode (#189310)

This is a small fix for `#if __cplusplus >= 202002L` condition, which
accidentally disabled this part of the test in C++20 mode.
DeltaFile
+1-1clang/test/CXX/drs/cwg25xx.cpp
+1-11 files

LLVM/project a0b707clibcxx/include/__algorithm ranges_fold.h

simplify
DeltaFile
+3-8libcxx/include/__algorithm/ranges_fold.h
+3-81 files

LLVM/project 55af9c2libc/shared/math dsubf128.h dsubl.h, libc/src/__support/math dsubf128.h dsubl.h

[libc][math] Refactor dsub family to header-only (#182160)

Refactors the dsub math family to be header-only.

Closes https://github.com/llvm/llvm-project/issues/182159

Target Functions:
  - dsubf128
  - dsubl

---------

Co-authored-by: bassiounix <muhammad.m.bassiouni at gmail.com>
DeltaFile
+31-0libc/src/__support/math/dsubf128.h
+28-1utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+29-0libc/shared/math/dsubf128.h
+25-0libc/src/__support/math/dsubl.h
+23-0libc/shared/math/dsubl.h
+19-0libc/src/__support/math/CMakeLists.txt
+155-18 files not shown
+171-1514 files

LLVM/project 47c06efllvm/test/CodeGen/LoongArch/lsx/ir-instruction fpext.ll

add tests for loongarch32
DeltaFile
+8-18llvm/test/CodeGen/LoongArch/lsx/ir-instruction/fpext.ll
+8-181 files

LLVM/project 3bbfa3ellvm/lib/Target/LoongArch LoongArchISelLowering.cpp LoongArchLSXInstrInfo.td, llvm/test/CodeGen/LoongArch/lasx srlr.ll srar.ll

[LoongArch] Combine rounded vector shifts to VSRLR/VSRAR (#192921)

Add DAG combines to recognize canonical rounded shift patterns and lower
them to target-specific vector rounded shift instructions.

The combines match vector arithmetic and logical right shifts with
rounding implemented as:

```
  add (srl/sra X, shift),
      (and (srl X, shift-1), 1)
```

and the shift-by-1 variant:

```
  add (srl/sra X, 1),
      (and X, 1)
```

    [13 lines not shown]
DeltaFile
+268-0llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
+12-65llvm/test/CodeGen/LoongArch/lsx/srlr.ll
+12-65llvm/test/CodeGen/LoongArch/lsx/srar.ll
+12-65llvm/test/CodeGen/LoongArch/lasx/srlr.ll
+12-65llvm/test/CodeGen/LoongArch/lasx/srar.ll
+12-0llvm/lib/Target/LoongArch/LoongArchLSXInstrInfo.td
+328-2601 files not shown
+336-2607 files

LLVM/project a693efcllvm/lib/Target/RISCV RISCVSubtarget.cpp CMakeLists.txt, llvm/lib/Target/RISCV/GISel RISCVInlineAsmLowering.cpp RISCVInlineAsmLowering.h

[RISCV][GlobalISel] Support RISC-V specific inline asm constraints: 'I', 'J', 'K' and 'S' (#193765)

This patch implements some target-specific constraints for RISC-V: `I`,
`J`, `K` and `S`. These constraints are all for immediate values except
for `S`. The handling of these constraints is implemented with by adding
`RISCVInlineAsmLowering` subclass of `InlineAsmLowering`.
DeltaFile
+128-0llvm/test/CodeGen/RISCV/GlobalISel/irtranslator-inline-asm.ll
+68-0llvm/lib/Target/RISCV/GISel/RISCVInlineAsmLowering.cpp
+27-0llvm/lib/Target/RISCV/GISel/RISCVInlineAsmLowering.h
+3-1llvm/lib/Target/RISCV/RISCVSubtarget.cpp
+1-0llvm/lib/Target/RISCV/CMakeLists.txt
+227-15 files

LLVM/project 3dc4fd6compiler-rt/lib/sanitizer_common sanitizer_platform_limits_posix.cpp

[compiler-rt][sanitizer] Remove linux/scc.h (#194116)

#194110 

Linux Kernel has removed scc.h header completely from the source code
Therefore, we need to remove the usage in compiler-rt/sanitizer too.
https://github.com/torvalds/linux/commit/64edfa65062dc4509ba75978116b2f6d392346f5#diff-1ca78e598a5041ee51ae795d168435afad598b82a7a0ce80f215993589b96c7c

Without removing it, not only it breaks compiler-rt but also GCC build
since GCC always builds libsanitizer for linux targets.

After merging this we will need to cherry pick to GCC.
DeltaFile
+9-12compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp
+9-121 files

LLVM/project 6d8ce96llvm/lib/Target/LoongArch LoongArchISelLowering.cpp

fixes according reviews
DeltaFile
+12-14llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
+12-141 files

LLVM/project e2fdd93llvm/lib/Target/LoongArch LoongArchISelLowering.cpp, llvm/test/CodeGen/LoongArch vector-fp-imm.ll

[LoongArch] Type legalize v2f32 loads by using an f64 load and a scalar_to_vector.

On 64-bit targets the generic legalize will use an i64 load and a
scalar_to_vector for us. But on 32-bit targets i64 isn't legal and the
generic legalizer will end up emitting two 32-bit loads.
DeltaFile
+28-0llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
+1-2llvm/test/CodeGen/LoongArch/vector-fp-imm.ll
+29-22 files

LLVM/project f848e51bolt/unittests/Profile DataAggregator.cpp

format

Created using spr 1.3.4
DeltaFile
+1-2bolt/unittests/Profile/DataAggregator.cpp
+1-21 files

LLVM/project c76003bbolt/unittests/Profile DataAggregator.cpp

fold branch tests

Created using spr 1.3.4
DeltaFile
+3-11bolt/unittests/Profile/DataAggregator.cpp
+3-111 files

LLVM/project 1ba9e2fllvm/lib/Target/LoongArch LoongArchISelLowering.cpp

Address wanglei's comments
DeltaFile
+2-6llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
+2-61 files

LLVM/project db31b84llvm/lib/Target/LoongArch LoongArchISelLowering.cpp LoongArchLSXInstrInfo.td, llvm/test/CodeGen/LoongArch/lasx srar.ll srlr.ll

[LoongArch] Combine rounded vector shifts to VSRLR/VSRAR

Add DAG combines to recognize canonical rounded shift patterns and
lower them to target-specific vector rounded shift instructions.

The combines match vector arithmetic and logical right shifts with
rounding implemented as:

```
  add (srl/sra X, shift),
      (and (srl X, shift-1), 1)
```

and the shift-by-1 variant:

```
  add (srl/sra X, 1),
      (and X, 1)
```

    [14 lines not shown]
DeltaFile
+272-0llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
+12-65llvm/test/CodeGen/LoongArch/lsx/srlr.ll
+12-65llvm/test/CodeGen/LoongArch/lasx/srar.ll
+12-65llvm/test/CodeGen/LoongArch/lasx/srlr.ll
+12-65llvm/test/CodeGen/LoongArch/lsx/srar.ll
+12-0llvm/lib/Target/LoongArch/LoongArchLSXInstrInfo.td
+332-2601 files not shown
+340-2607 files

LLVM/project 320a515llvm/test/CodeGen/LoongArch/lasx srar.ll srlr.ll, llvm/test/CodeGen/LoongArch/lsx srlr.ll srar.ll

[LoongArch] Add tests for vector shift-right-and-round combines (#192920)
DeltaFile
+220-0llvm/test/CodeGen/LoongArch/lsx/srlr.ll
+220-0llvm/test/CodeGen/LoongArch/lasx/srar.ll
+220-0llvm/test/CodeGen/LoongArch/lasx/srlr.ll
+220-0llvm/test/CodeGen/LoongArch/lsx/srar.ll
+880-04 files

LLVM/project e68d6c4llvm/lib/Target/RISCV RISCVTargetTransformInfo.cpp, llvm/lib/Transforms/Vectorize LoopVectorizationPlanner.cpp

[LV] moved call site to new location in VFSelectionContext::computeFeasibleMaxVF after a recent change
DeltaFile
+12-3llvm/test/Transforms/LoopVectorize/RISCV/reg-usage-maxbandwidth.ll
+2-5llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
+6-0llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.cpp
+1-1llvm/test/Transforms/LoopVectorize/RISCV/lmul.ll
+1-1llvm/test/Transforms/LoopVectorize/RISCV/reg-usage.ll
+22-105 files

LLVM/project aeea319llvm/lib/MC ELFObjectWriter.cpp MCContext.cpp, llvm/lib/Target/SystemZ/MCTargetDesc SystemZHLASMAsmStreamer.h

[MC] Change MCContext::getTargetOptions to return a reference. NFC (#194112)

Since #180464, MCAsmInfo stores a non-null MCTargetOptions pointer set
by
TargetRegistry::createMCAsmInfo, and MCContext's constructor asserts
that
MAI->getTargetOptions() is non-null. Return the options by reference
instead of by pointer so callers can drop the null handling.
DeltaFile
+9-9llvm/lib/MC/ELFObjectWriter.cpp
+9-8llvm/lib/MC/MCContext.cpp
+4-6llvm/lib/MC/MCELFStreamer.cpp
+4-4llvm/lib/MC/MCAsmStreamer.cpp
+3-3llvm/lib/MC/MCObjectStreamer.cpp
+1-4llvm/lib/Target/SystemZ/MCTargetDesc/SystemZHLASMAsmStreamer.h
+30-346 files not shown
+37-4312 files

LLVM/project 5e09af5clang/lib/AST/ByteCode Interp.h, clang/test/AST/ByteCode cxx23.cpp

[clang][bytecode] Reject inc/dec on non-numbers (#193954)
DeltaFile
+16-0clang/test/AST/ByteCode/cxx23.cpp
+7-0clang/lib/AST/ByteCode/Interp.h
+23-02 files