LLVM/project ac9879e — clang/docs ReleaseNotes.md, clang/lib/CodeGen CGCXX.cpp

[clang][CodeGen] Fix a crash caused by inconsistent addrspace (#236752)

fixes https://github.com/llvm/llvm-project/issues/236285
DeltaFile
+20-0clang/test/CodeGen/avr/issue-236285.cpp
+5-3clang/lib/CodeGen/CGCXX.cpp
+2-0clang/docs/ReleaseNotes.md
+27-33 files

LLVM/project e98b16a — llvm/include/llvm/ADT AddressRanges.h

[ADT] Qualify AddressRange in AddressRangesBase::find. NFC (#237144)

With `-fdelayed-template-parsing` (the default for clang targeting the
MSVC ABI), `find` is parsed at the end of the TU, where `llvm-profgen`
makes `llvm::sampleprof::AddressRange` visible in `namespace llvm`.
Qualify with `llvm::` to avoid the ambiguity.

```
AddressRanges.h:101:42: error: reference to 'AddressRange' is ambiguous
note: candidate found by name lookup is 'llvm::AddressRange'
note: candidate found by name lookup is 'llvm::sampleprof::AddressRange'
```
DeltaFile
+4-3llvm/include/llvm/ADT/AddressRanges.h
+4-31 files

LLVM/project e47d33d — llvm/lib/Target/Sparc SparcInstrInfo.td SparcISelLowering.cpp, llvm/test/CodeGen/SPARC tls-ie-licm.ll

[SPARC] Keep the GOT memory operand on TLS initial-exec loads (#237512)

The initial-exec TP offset load (SPISD::TLS_LD) was a plain node, so
TLS_LD[X]rr had no memory operand and was not known to be an invariant
load. MachineLICM, MachineCSE and rematerialization then left one GOT
load per use, including inside loops.

Build it as a memory node with a GOT MachinePointerInfo, as was done for
the GOTDATA_OP load in 5cf27304eccf.

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+49-0llvm/test/CodeGen/SPARC/tls-ie-licm.ll
+5-3llvm/lib/Target/Sparc/SparcISelLowering.cpp
+2-1llvm/lib/Target/Sparc/SparcInstrInfo.td
+56-43 files

LLVM/project cf44dd9 — llvm/lib/Target/DirectX DXILIntrinsicExpansion.cpp

[DirectX] expandIsFPClass - silence MSVC promoted shift warning (#237237)

Use APInt::getSignMask to create -0.0 bitmask instead of raw uint32_t
shift that is then implicitly promoted to uint64_t in the
ConstantInt::get call.

Silences MSVC "result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?)" warning.
DeltaFile
+2-3llvm/lib/Target/DirectX/DXILIntrinsicExpansion.cpp
+2-31 files

LLVM/project 00cbe82 — libc/src/stdlib CMakeLists.txt environ_internal.cpp, libc/test/integration/src/stdlib CMakeLists.txt getenv_test.cpp

[libc][stdlib] Avoid scanning values during environment lookup (#228633)

Constructing a string_view for each environment entry scans the entire
value to determine its length, even when the name does not match. This
makes lookups unnecessarily expensive for long values such as PATH.

Filter entries by their first character, then compare the remaining name
up to a mismatch or null terminator. Require a following '=' to match
the complete key, preserving support for empty names in putenv.

Closes #196016
DeltaFile
+32-0libc/test/integration/src/stdlib/getenv_test.cpp
+19-4libc/src/stdlib/environ_internal.cpp
+1-0libc/test/integration/src/stdlib/CMakeLists.txt
+1-0libc/src/stdlib/CMakeLists.txt
+53-44 files

LLVM/project 815aa86 — llvm/test/Transforms/LoopStrengthReduce/X86 duplicate-phi-nodes.ll

[𝘀𝗽𝗿] changes to main this commit is based on

Created using spr 1.3.7

[skip ci]
DeltaFile
+54-0llvm/test/Transforms/LoopStrengthReduce/X86/duplicate-phi-nodes.ll
+54-01 files

LLVM/project 1c64973 — llvm/lib/Transforms/Scalar LoopStrengthReduce.cpp, llvm/test/Transforms/LoopStrengthReduce/X86 lcssa-preservation-regression.ll duplicate-phi-nodes.ll

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+51-0llvm/test/Transforms/LoopStrengthReduce/X86/duplicate-phi-nodes.ll
+9-0llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
+0-2llvm/test/Transforms/LoopStrengthReduce/X86/lcssa-preservation-regression.ll
+60-23 files

LLVM/project 65f69e1 — llvm/test/Transforms/LoopStrengthReduce/X86 duplicate-phi-nodes.ll

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+54-0llvm/test/Transforms/LoopStrengthReduce/X86/duplicate-phi-nodes.ll
+54-01 files

LLVM/project 56cc7fa — llvm/test/CodeGen/RISCV/GlobalISel/instruction-select ctlz-rv64.mir

[RISCV][GISel] Fix G_CTLZ operand in ctlz-rv64.mir test. NFC (#237499)
DeltaFile
+3-2llvm/test/CodeGen/RISCV/GlobalISel/instruction-select/ctlz-rv64.mir
+3-21 files

LLVM/project 2323019 — clang/lib/Interpreter DeviceOffload.cpp, clang/test/Interpreter/CUDA ptx-version.cu

[clang-repl] Pass the target features to the device TargetMachine (#235754)

IncrementalCUDADeviceParser creates the NVPTX TargetMachine with an
empty feature string. The +ptxNN feature that the driver derives from
the CUDA version is dropped, causing the backend to emit the minimum PTX
version for the target SM instead. A kernel using a newer instruction
then fails to load with cudaErrorInvalidPtx, for example shfl.sync below
sm_70.

Join TargetOptions::Features into the feature string, as done in
EmitAssemblyHelper::CreateTargetMachine.

Add a unittest that passes --cuda-feature=+ptx80 to the device
compilation and checks the .version of the embedded PTX.
DeltaFile
+14-0clang/test/Interpreter/CUDA/ptx-version.cu
+3-2clang/lib/Interpreter/DeviceOffload.cpp
+17-22 files

LLVM/project 1f406e3 — llvm/include/llvm/IR BasicBlock.h, llvm/lib/IR BasicBlock.cpp

[IR] Put validateInstrOrdering behind ABI_BREAKING_CHECKS (#235885)

A release LLVM library will provide no definition for
validateInstrOrdering, but the inline definition is guarded behing
NDEBUG -- so a LLVM consumer including the headers without NDEBUG won't
have a definition of the function (and is thereby prevented from calling
invalidateOrders()).

Move the inline function behind LLVM_ENABLE_ABI_BREAKING_CHECKS instead.
DeltaFile
+2-2llvm/include/llvm/IR/BasicBlock.h
+3-1llvm/lib/IR/BasicBlock.cpp
+5-32 files

LLVM/project a999b40 — lldb/source/Commands CommandOptionsProcessAttach.h CommandObjectPlatform.cpp, lldb/test/API/iohandler/picker TestIOHandlerPicker.py

[lldb] Show a process picker in process attach without a pid

This patch makes `process attach` show an `IOHandlerPicker` listing the
processes on the selected platform, with their pid, name, and
architecture, when it is run without a pid or process name and the target
has no executable to fall back on. `platform process attach` does the same
whenever no pid or name is given. Scripted process attaches (`-C`) are left
unchanged.

When the input is not an interactive terminal, both commands skip the
picker and fail the same way they did before, and canceling the picker
fails with "no process selected".

Assisted-by: Claude
Signed-off-by: Med Ismail Bennani <ismail at bennani.ma>


DeltaFile
+42-0lldb/source/Commands/CommandOptionsProcessAttach.cpp
+14-0lldb/source/Commands/CommandObjectProcess.cpp
+13-0lldb/source/Commands/CommandObjectPlatform.cpp
+9-1lldb/test/API/iohandler/picker/TestIOHandlerPicker.py
+9-0lldb/source/Commands/CommandOptionsProcessAttach.h
+87-15 files

LLVM/project 16e328b — lldb/include/lldb/Core IOHandlerPicker.h, lldb/source/Core IOHandlerPicker.cpp

[lldb] Add search to IOHandlerPicker

This patch lets the user filter the picker's rows by pressing `/` and
typing a query. A row is shown if any of its columns contains the query,
ignoring case. While the search prompt is open, printable keys edit the
query and the arrow keys keep moving through the matches. Enter applies
the filter and returns to navigation, ESC clears it, and Backspace on an
empty query leaves the prompt.

The footer shows the active filter and how many rows it hides. In
multi-select mode, rows hidden by the filter keep their checked state and
are still returned on confirm.

To support this, `ReadKey` now returns printable characters as-is, and the
mapping of `j`, `k`, `s`, and Space to actions moves into `HandleKey`. A
read failure or Ctrl+C always cancels the picker, even while searching.

Assisted-by: Claude
Signed-off-by: Med Ismail Bennani <ismail at bennani.ma>

    [2 lines not shown]
DeltaFile
+164-81lldb/source/Core/IOHandlerPicker.cpp
+51-0lldb/test/API/iohandler/picker/TestIOHandlerPicker.py
+23-10lldb/include/lldb/Core/IOHandlerPicker.h
+238-913 files

LLVM/project bd35a09 — lldb/include/lldb/Core IOHandlerPicker.h, lldb/source/Core IOHandlerPicker.cpp

[lldb] Add column sorting to IOHandlerPicker

This patch lets the user sort the picker's rows by pressing `s`, which
cycles through each column in ascending then descending order before
returning to the original order. A column whose values are all integers
compares numerically, and other columns compare as strings. Ties keep
their original relative order, and the cursor moves back to the top after
each sort so the new order is visible.

The column header shows which column is sorted and in which direction, and
each column reserves room for that indicator so it doesn't shift the
layout.

Assisted-by: Claude
Signed-off-by: Med Ismail Bennani <ismail at bennani.ma>
DeltaFile
+87-10lldb/source/Core/IOHandlerPicker.cpp
+20-4lldb/include/lldb/Core/IOHandlerPicker.h
+17-0lldb/test/API/iohandler/picker/TestIOHandlerPicker.py
+124-143 files

LLVM/project 8ebcb98 — lldb/include/lldb/Core IOHandlerPicker.h, lldb/source/Commands CommandObjectTestPicker.h CommandObjectTestPicker.cpp

[lldb] Add an interactive picker IOHandler

This patch adds `IOHandlerPicker`, an ANSI-based IOHandler that lets the
user choose one or more items from a table. It supports single-select and
multi-select modes, arrow and vim-style navigation, and paging. It draws on
the alternate screen buffer so the user's scrollback is restored on exit,
redraws itself when the terminal is resized, and reports a canceled result
when the input is not an interactive terminal.

The statusline can't stay up underneath the picker: its scroll region
also applies to the alternate screen, and its cursor save/restore shares
the slot that leaving the alternate screen restores. This patch
addresses that by adding `Debugger::HideStatusline` and
`Debugger::ShowStatusline`, which the picker uses to remove the
statusline while it owns the screen and bring it back once it's done.

`AnsiTerminal.h` didn't have macros for the DEC private modes the picker
toggles: cursor visibility, auto-wrap, and the alternate screen buffer.
This patch adds them there, so we don't hard-code those escape sequences

    [10 lines not shown]
DeltaFile
+449-0lldb/source/Core/IOHandlerPicker.cpp
+125-0lldb/include/lldb/Core/IOHandlerPicker.h
+101-0lldb/source/Commands/CommandObjectTestPicker.cpp
+90-0lldb/test/API/iohandler/picker/TestIOHandlerPicker.py
+18-8lldb/source/Core/Debugger.cpp
+25-0lldb/source/Commands/CommandObjectTestPicker.h
+808-86 files not shown
+835-812 files

LLVM/project fbbabb1 — lldb/source/Commands CommandOptionsProcessAttach.h CommandObjectPlatform.cpp, lldb/test/API/iohandler/picker TestIOHandlerPicker.py

[lldb] Show a process picker in process attach without a pid

This patch makes `process attach` show an `IOHandlerPicker` listing the
processes on the selected platform, with their pid, name, and
architecture, when it is run without a pid or process name and the target
has no executable to fall back on. `platform process attach` does the same
whenever no pid or name is given. Scripted process attaches (`-C`) are left
unchanged.

When the input is not an interactive terminal, both commands skip the
picker and fail the same way they did before, and canceling the picker
fails with "no process selected".

Assisted-by: Claude
Signed-off-by: Med Ismail Bennani <ismail at bennani.ma>
DeltaFile
+46-0lldb/source/Commands/CommandOptionsProcessAttach.cpp
+14-0lldb/source/Commands/CommandObjectProcess.cpp
+13-0lldb/source/Commands/CommandObjectPlatform.cpp
+9-1lldb/test/API/iohandler/picker/TestIOHandlerPicker.py
+9-0lldb/source/Commands/CommandOptionsProcessAttach.h
+91-15 files

LLVM/project f1f7693 — lldb/include/lldb/Core IOHandlerPicker.h, lldb/source/Core IOHandlerPicker.cpp

[lldb] Add search to IOHandlerPicker

This patch lets the user filter the picker's rows by pressing `/` and
typing a query. A row is shown if any of its columns contains the query,
ignoring case. While the search prompt is open, printable keys edit the
query and the arrow keys keep moving through the matches. Enter applies
the filter and returns to navigation, ESC clears it, and Backspace on an
empty query leaves the prompt.

The footer shows the active filter and how many rows it hides. In
multi-select mode, rows hidden by the filter keep their checked state and
are still returned on confirm.

To support this, `ReadKey` now returns printable characters as-is, and the
mapping of `j`, `k`, `s`, and Space to actions moves into `HandleKey`. A
read failure or Ctrl+C always cancels the picker, even while searching.

Assisted-by: Claude
Signed-off-by: Med Ismail Bennani <ismail at bennani.ma>
DeltaFile
+164-81lldb/source/Core/IOHandlerPicker.cpp
+51-0lldb/test/API/iohandler/picker/TestIOHandlerPicker.py
+23-10lldb/include/lldb/Core/IOHandlerPicker.h
+238-913 files

LLVM/project d08250c — lldb/include/lldb/Core IOHandlerPicker.h, lldb/source/Core IOHandlerPicker.cpp

[lldb] Add column sorting to IOHandlerPicker

This patch lets the user sort the picker's rows by pressing `s`, which
cycles through each column in ascending then descending order before
returning to the original order. Columns marked `is_numeric` compare as
integers, and other columns compare as strings. Ties keep their original
relative order, and the cursor moves back to the top after each sort so the
new order is visible.

The column header shows which column is sorted and in which direction, and
each column reserves room for that indicator so it doesn't shift the
layout.

Assisted-by: Claude
Signed-off-by: Med Ismail Bennani <ismail at bennani.ma>
DeltaFile
+88-10lldb/source/Core/IOHandlerPicker.cpp
+20-4lldb/include/lldb/Core/IOHandlerPicker.h
+17-0lldb/test/API/iohandler/picker/TestIOHandlerPicker.py
+125-143 files

LLVM/project 9b03c7f — lldb/include/lldb/Core IOHandlerPicker.h, lldb/source/Commands CommandObjectTestPicker.h CommandObjectTestPicker.cpp

[lldb] Add an interactive picker IOHandler

This patch adds `IOHandlerPicker`, an ANSI-based IOHandler that lets the
user choose one or more items from a table. It supports single-select and
multi-select modes, arrow and vim-style navigation, and paging. It draws on
the alternate screen buffer so the user's scrollback is restored on exit,
redraws itself when the terminal is resized, and reports a canceled result
when the input is not an interactive terminal.

The statusline can't stay up underneath the picker: its scroll region
also applies to the alternate screen, and its cursor save/restore shares
the slot that leaving the alternate screen restores. This patch
addresses that by adding `Debugger::HideStatusline` and
`Debugger::ShowStatusline`, which the picker uses to remove the
statusline while it owns the screen and bring it back once it's done.

`AnsiTerminal.h` didn't have macros for the DEC private modes the picker
toggles: cursor visibility, auto-wrap, and the alternate screen buffer.
This patch adds them there, so we don't hard-code those escape sequences

    [9 lines not shown]
DeltaFile
+449-0lldb/source/Core/IOHandlerPicker.cpp
+128-0lldb/include/lldb/Core/IOHandlerPicker.h
+105-0lldb/source/Commands/CommandObjectTestPicker.cpp
+90-0lldb/test/API/iohandler/picker/TestIOHandlerPicker.py
+18-8lldb/source/Core/Debugger.cpp
+25-0lldb/source/Commands/CommandObjectTestPicker.h
+815-86 files not shown
+842-812 files

LLVM/project d35f657 — bolt/docs BAT.md conf.py, bolt/docs/_static bolt.css

[BOLT][Docs] Update webpage styling (#237235)

This PR makes a variety of changes, ahead of the new BOLT sub-domain to
improve the formatting of the webpages:
- Added HTML/CSS styling and templates inspired by
https://clang.llvm.org/.
- Makes navigation, labelling and spacing consistent 
- Simplifies the Sphinx configuration to build the webpages. 
- Added documentation on how to edit the webpages. 

Additionally this PR links to
[#1070](https://github.com/llvm/llvm-zorg/pull/1070) which enables the
webpages to be built using Sphinx.

Assisted-by: Codex
DeltaFile
+172-0bolt/docs/_static/bolt.css
+24-24bolt/docs/profiles.md
+4-29bolt/docs/conf.py
+15-18bolt/docs/index.md
+24-0bolt/docs/_templates/sidebar.html
+11-11bolt/docs/BAT.md
+250-823 files not shown
+287-899 files

LLVM/project 9aa9a3d — llvm/lib/Target/Sparc SparcFrameLowering.cpp, llvm/test/CodeGen/SPARC leafproc-read-register.ll leafproc-high-pressure.ll

[SPARC] Add live-ins for reserved registers remapped in leaf procedures (#236654)

Leaf procedure lowering remaps %i0-%i7 to %o0-%o7 after register
allocation. Reserved registers are not tracked by liveness, so a read of
%i7 through llvm.read_register has no live-in. Once %i7 is remapped to
the unreserved %o7, the machine verifier reports a use of an undefined
physical register. The test added by PR 212838 reads %i7 as %r31 and
hit this on the expensive checks builders.

When a reserved %i register is remapped to an unreserved %o register,
add the %o register as a live-in to every block. In a leaf procedure it
holds the incoming value for the whole function.

PR 213359 instead moved the leaf decision before register allocation.
That made call-free functions under register pressure into leaf
procedures that spill instead of keeping their register window. Here
the leaf decision stays after register allocation.

leafproc-high-pressure.ll is the test doac provided in the review of

    [7 lines not shown]
DeltaFile
+55-0llvm/test/CodeGen/SPARC/leafproc-high-pressure.ll
+53-0llvm/test/CodeGen/SPARC/leafproc-read-register.ll
+11-0llvm/lib/Target/Sparc/SparcFrameLowering.cpp
+119-03 files

LLVM/project d795579 — compiler-rt/test/sanitizer_common/TestCases/Linux signal_segv_handler.cpp

Revert "[sanitizer_common][test] Limit signal_segv_handler test time (#236538)"

This reverts commit e6f071af3e0f4dd79754eefcae1da900103f3af1.
DeltaFile
+2-12compiler-rt/test/sanitizer_common/TestCases/Linux/signal_segv_handler.cpp
+2-121 files

LLVM/project 01a3acc — compiler-rt/lib/asan asan_interceptors.cpp, compiler-rt/lib/asan/tests asan_str_test.cpp

[ASan] Fix off-by-one in strncat overlap check (#237014)

`INTERCEPTOR(strncat)` writes `from_length + 1` bytes starting at
`to + to_length`, so the resulting destination string occupies
`to_length + from_length + 1` bytes.

Since 33824c54f616, `CHECK_RANGES_OVERLAP` passed
`to_length + copy_length + 1` as the destination length instead. When
`from_length < size`, `copy_length` (`Min(size, from_length + 1)`) is
already `from_length + 1`, checking 1 byte past the written trailing NUL
and triggering a false-positive `strncat-param-overlap` report when
`from` starts right after it.

Assisted-by: Gemini
DeltaFile
+11-0compiler-rt/lib/asan/tests/asan_str_test.cpp
+1-1compiler-rt/lib/asan/asan_interceptors.cpp
+12-12 files

LLVM/project 0743db6 — lldb/include/lldb/Core IOHandlerPicker.h, lldb/source/Core IOHandlerPicker.cpp

[lldb] Add search to IOHandlerPicker

This patch lets the user filter the picker's rows by pressing `/` and
typing a query. A row is shown if any of its columns contains the query,
ignoring case. While the search prompt is open, printable keys edit the
query and the arrow keys keep moving through the matches. Enter applies
the filter and returns to navigation, ESC clears it, and Backspace on an
empty query leaves the prompt.

The footer shows the active filter and how many rows it hides. In
multi-select mode, rows hidden by the filter keep their checked state and
are still returned on confirm.

To support this, `ReadKey` now returns printable characters as-is, and the
mapping of `j`, `k`, `s`, and Space to actions moves into `HandleKey`. A
read failure or Ctrl+C always cancels the picker, even while searching.

Signed-off-by: Med Ismail Bennani <ismail at bennani.ma>
DeltaFile
+164-81lldb/source/Core/IOHandlerPicker.cpp
+51-0lldb/test/API/iohandler/picker/TestIOHandlerPicker.py
+23-10lldb/include/lldb/Core/IOHandlerPicker.h
+238-913 files

LLVM/project a98cd74 — lldb/source/Commands CommandOptionsProcessAttach.h CommandObjectPlatform.cpp, lldb/test/API/iohandler/picker TestIOHandlerPicker.py

[lldb] Show a process picker in process attach without a pid

This patch makes `process attach` show an `IOHandlerPicker` listing the
processes on the selected platform, with their pid, name, and
architecture, when it is run without a pid or process name and the target
has no executable to fall back on. `platform process attach` does the same
whenever no pid or name is given. Scripted process attaches (`-C`) are left
unchanged.

When the input is not an interactive terminal, both commands skip the
picker and fail the same way they did before, and canceling the picker
fails with "no process selected".

Signed-off-by: Med Ismail Bennani <ismail at bennani.ma>
DeltaFile
+46-0lldb/source/Commands/CommandOptionsProcessAttach.cpp
+14-0lldb/source/Commands/CommandObjectProcess.cpp
+13-0lldb/source/Commands/CommandObjectPlatform.cpp
+9-1lldb/test/API/iohandler/picker/TestIOHandlerPicker.py
+9-0lldb/source/Commands/CommandOptionsProcessAttach.h
+91-15 files

LLVM/project a973907 — lldb/include/lldb/Core IOHandlerPicker.h, lldb/source/Core IOHandlerPicker.cpp

[lldb] Add column sorting to IOHandlerPicker

This patch lets the user sort the picker's rows by pressing `s`, which
cycles through each column in ascending then descending order before
returning to the original order. Columns marked `is_numeric` compare as
integers, and other columns compare as strings. Ties keep their original
relative order, and the cursor moves back to the top after each sort so the
new order is visible.

The column header shows which column is sorted and in which direction, and
each column reserves room for that indicator so it doesn't shift the
layout.

Signed-off-by: Med Ismail Bennani <ismail at bennani.ma>
DeltaFile
+88-10lldb/source/Core/IOHandlerPicker.cpp
+20-4lldb/include/lldb/Core/IOHandlerPicker.h
+17-0lldb/test/API/iohandler/picker/TestIOHandlerPicker.py
+125-143 files

LLVM/project 4b41f56 — lldb/include/lldb/Core IOHandlerPicker.h, lldb/source/Commands CommandObjectTestPicker.h CommandObjectTestPicker.cpp

[lldb] Add an interactive picker IOHandler

This patch adds `IOHandlerPicker`, an ANSI-based IOHandler that lets the
user choose one or more items from a table. It supports single-select and
multi-select modes, arrow and vim-style navigation, and paging. It draws on
the alternate screen buffer so the user's scrollback is restored on exit,
redraws itself when the terminal is resized, and reports a canceled result
when the input is not an interactive terminal.

The statusline can't stay up underneath the picker: its scroll region
also applies to the alternate screen, and its cursor save/restore shares
the slot that leaving the alternate screen restores. This patch
addresses that by adding `Debugger::HideStatusline` and
`Debugger::ShowStatusline`, which the picker uses to remove the
statusline while it owns the screen and bring it back once it's done.

`AnsiTerminal.h` didn't have macros for the DEC private modes the picker
toggles: cursor visibility, auto-wrap, and the alternate screen buffer.
This patch adds them there, so we don't hard-code those escape sequences

    [8 lines not shown]
DeltaFile
+449-0lldb/source/Core/IOHandlerPicker.cpp
+128-0lldb/include/lldb/Core/IOHandlerPicker.h
+105-0lldb/source/Commands/CommandObjectTestPicker.cpp
+90-0lldb/test/API/iohandler/picker/TestIOHandlerPicker.py
+18-8lldb/source/Core/Debugger.cpp
+25-0lldb/source/Commands/CommandObjectTestPicker.h
+815-86 files not shown
+842-812 files

LLVM/project 2d6d54b — llvm/include/llvm/CodeGen TargetLowering.h, llvm/lib/CodeGen/SelectionDAG SelectionDAGBuilder.cpp

[SelectionDAG] Use the Func kind for inline asm operands only on x86

The only platform that currently uses the "Func" kind is x86. The other
targets aren't able to handle it. For instance, SystemZ asserts "This is
not a register operand!" and Hexagon hits an llvm_unreachable.

Gate the use of the Func kind behind a new hook
TargetLowering::supportsInlineAsmFuncOperands(), which only x86
overrides.

Assisted-by: Claude Opus 5.5
DeltaFile
+52-0llvm/test/CodeGen/SystemZ/inline-asm-addr.ll
+8-0llvm/include/llvm/CodeGen/TargetLowering.h
+4-0llvm/lib/Target/X86/X86ISelLowering.h
+1-1llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
+65-14 files

LLVM/project 8b06678 — llvm/lib/Transforms/Instrumentation MemorySanitizer.cpp, llvm/test/Instrumentation/MemorySanitizer vector-extract-last-active.ll

[MSan] Handle llvm.experimental.vector.extract.last.active (#233552)

`LoopVectorize` emits `@llvm.experimental.vector.extract.last.active`
when lowering `FindLast` reductions, often consuming a vector produced
by `@llvm.masked.load` with a `poison` passthru (shadow `-1` in inactive
lanes).

Previously, `MemorySanitizerVisitor` did not handle
`Intrinsic::experimental_vector_extract_last_active` and fell back to
`visitInstruction`, which checks that all lanes of all operands are
initialized. This caused false-positive MSan UMR reports whenever
inactive lanes of the input vector were uninitialized or `poison`.

Add `MemorySanitizerVisitor::handleVectorExtractLastActive`:
- Check that the `%mask` vector is fully initialized.
- Propagate shadow by calling
`@llvm.experimental.vector.extract.last.active` on `(DataShadow, Mask,
PassThru)` so only the extracted active lane shadow (or
`getShadow(PassThru)` if no lane is active) is propagated.

    [3 lines not shown]
DeltaFile
+61-106llvm/test/Instrumentation/MemorySanitizer/vector-extract-last-active.ll
+46-0llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
+107-1062 files

LLVM/project 1d8093e — lldb/source/Expression DWARFExpression.cpp, lldb/unittests/Expression DWARFExpressionTest.cpp

[lldb] Consume the source of zero-sized DW_OP_piece operations (#219395)

`Evaluate_DW_OP_piece` returned early for a zero-sized piece before
removing
its source location from the expression stack. A later non-empty piece
could
then assemble the correct composite buffer while the stale source
remained on
the stack and was returned instead.

Consume the source stack entry when a zero-sized piece has one, while
still
contributing no bytes to the composite. Add a unit test covering a
zero-sized
register piece followed by a non-empty register piece.

Fixes #209099
DeltaFile
+16-0lldb/unittests/Expression/DWARFExpressionTest.cpp
+6-1lldb/source/Expression/DWARFExpression.cpp
+22-12 files