LLVM/project 2033c45llvm/include/llvm/ProfileData SampleProfReader.h, llvm/lib/ProfileData SampleProfReader.cpp

[SampleProfile] Remove ProfileHasAttribute parameter from readFuncMetadata (NFC) (#208604)

This patch removes the ProfileHasAttribute parameter from
readFuncMetadata overloads.

Because ProfileHasAttribute is set once in readImpl during section
header parsing and never modified afterward, readFuncMetadata observes
the exact same immutable value regardless of whether it is passed as a
function parameter or read from the class member variable.

Assisted-by: Antigravity
DeltaFile
+8-12llvm/lib/ProfileData/SampleProfReader.cpp
+3-5llvm/include/llvm/ProfileData/SampleProfReader.h
+11-172 files

LLVM/project f6a359fllvm/lib/CodeGen ReplaceWithVeclib.cpp, llvm/test/CodeGen/X86 sincos-fpmath.ll veclib-llvm.sincos.ll

[CodeGen] Teach ReplaceWithVeclib split vector llvm.sincos when only sin/cos veclib mappings exist (#194639)

Some vector math libraries provide vector sin and vector cos but no
vector sincos or no sincos with an ABI that LLVM can emit.

The one of the common case is glibc libmvec on x86: it exposes
`_ZGV{b,c,d,e}N{2,4,8,16}vvv_sincos{,f}` symbols, but those use a
vectors-of-pointers output ABI that expandMultipleResultFPLibCall does
not currently support. As a result, sincos will falls back to scalar
sincos calls even when the target has a fully working vector sin and
vector cos.

So we trying to split it into separate sin and cos calls, which will
then be replaced with vector calls if the target supports it, it
generally better than scalarized sincos calls.
DeltaFile
+105-8llvm/lib/CodeGen/ReplaceWithVeclib.cpp
+87-0llvm/test/CodeGen/X86/sincos-fpmath.ll
+8-18llvm/test/CodeGen/X86/veclib-llvm.sincos.ll
+200-263 files

LLVM/project 3f6af3bllvm/include/llvm/ADT GenericCycleImpl.h GenericCycleInfo.h, llvm/test/Analysis/UniformityAnalysis/AMDGPU/irreducible reducible-headers.ll diverged-entry-headers-nested.ll

[CycleInfo] Store blocks using Euler tour representation (#208614)

Each GenericCycle owned a `SetVector<BlockT*>` of its blocks (its own
plus every nested cycle's), so a block nested D cycles deep is stored D
times.

Instead, store every cycle's blocks in one GenericCycleInfo::BlockLayout
array laid out as an Euler tour of the cycle forest: each cycle owns a
contiguous range [IdxBegin, IdxEnd) nested inside its parent's.

run() builds the cycle tree and the block-to-innermost-cycle map as
before, then lays the array out in `layoutBlocks`. Its DFS also moves
from a single worklist that eagerly pushed every successor (so the stack
grew with the fan-out along the current path) to a stack of (block,
successor cursor) frames bounded by the DFS depth, with each block
pushed once; successors are still visited in the same order (hence the
weird `std::reverse_iterator`), so the cycles found are unchanged.

Block iteration order within a cycle changes, so cycle-print order in

    [4 lines not shown]
DeltaFile
+141-64llvm/include/llvm/ADT/GenericCycleImpl.h
+53-28llvm/include/llvm/ADT/GenericCycleInfo.h
+6-6llvm/test/Transforms/FixIrreducible/callbr.ll
+3-3llvm/test/CodeGen/X86/cycle-info.mir
+3-3llvm/test/Analysis/UniformityAnalysis/AMDGPU/irreducible/reducible-headers.ll
+2-2llvm/test/Analysis/UniformityAnalysis/AMDGPU/irreducible/diverged-entry-headers-nested.ll
+208-1065 files not shown
+213-11111 files

NetBSD/src EBUrmbtsys/dev/nvmm/x86 nvmm_x86_svm.c nvmm_x86_vmx.c

   nvmm: Add support for extended CPU state (XSAVE) beyond x87/SSE.

   New machine-dependent x86 vCPU configuration command
   NVMM_VCPU_CONF_XCR0_MASK sets the vCPU's XCR0 mask, that is, the set
   of XSAVE features that the guest sees as supported in the vCPU.  This
   command is advertised by the new machine capability
   NVMM_CAP_ARCH_VCPU_CONF_XCR0_MASK.  (Changing the XCR0 mask after the
   guest has begun execution will clear all extended CPU state for now;
   it is unlikely that hypervisor software will do this anyway.)

   This change doesn't expose the XSAVE area to userland in the comm
   page -- there are already machine-independent members in struct
   nvmm_comm_page at fixed offsets past the machine-dependent state so
   we can't just extend struct nvmm_vcpu_state without breaking the ABI.
   And the XSAVE area may exceed a page, but the address space for the
   virtual machine uvm object packs comm areas in consecutive pages, so
   we can't put it in the comm page at all without breaking the ABI
   another way.


    [10 lines not shown]
VersionDeltaFile
1.96+291-37sys/dev/nvmm/x86/nvmm_x86_svm.c
1.96+291-37sys/dev/nvmm/x86/nvmm_x86_vmx.c
1.25+188-4sys/dev/nvmm/x86/nvmm_x86.c
1.22+7-2sys/dev/nvmm/x86/nvmm_x86.h
+777-804 files

LLVM/project b1a3502bolt/test lit.cfg.py

[BOLT] Remove ability to use external shell

The external shell is getting removed soon, so remove the ability to
force the use of it within BOLT.

Reviewers:
aaupov, petrhosek, maksfb, yozhu, paschalis-mpeis, yavtuk, ilovepi, rafaelauler, ayermolo

Pull Request: https://github.com/llvm/llvm-project/pull/209567
DeltaFile
+1-12bolt/test/lit.cfg.py
+1-121 files

LLVM/project 13d2f17bolt/test/X86 dwarf-inline-range-plt-shift.s, clang/unittests/ScalableStaticAnalysis/Serialization/JSONFormatTest SharedLexicalRepresentationFormatTest.cpp

rebase

Created using spr 1.3.7
DeltaFile
+1,437-0llvm/test/Instrumentation/MemorySanitizer/X86/avx512dq-intrinsics.ll
+614-0bolt/test/X86/dwarf-inline-range-plt-shift.s
+317-0llvm/lib/Target/NVPTX/NVPTXPromoteParamAlign.cpp
+259-0clang/unittests/ScalableStaticAnalysis/Serialization/JSONFormatTest/SharedLexicalRepresentationFormatTest.cpp
+217-0llvm/test/CodeGen/NVPTX/promote-param-align.ll
+165-31lldb/source/Commands/CommandObjectScripting.cpp
+3,009-31110 files not shown
+5,145-1,090116 files

LLVM/project 1421e4dbolt/test/X86 dwarf-inline-range-plt-shift.s, clang/unittests/ScalableStaticAnalysis/Serialization/JSONFormatTest SharedLexicalRepresentationFormatTest.cpp

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+1,437-0llvm/test/Instrumentation/MemorySanitizer/X86/avx512dq-intrinsics.ll
+614-0bolt/test/X86/dwarf-inline-range-plt-shift.s
+317-0llvm/lib/Target/NVPTX/NVPTXPromoteParamAlign.cpp
+259-0clang/unittests/ScalableStaticAnalysis/Serialization/JSONFormatTest/SharedLexicalRepresentationFormatTest.cpp
+217-0llvm/test/CodeGen/NVPTX/promote-param-align.ll
+165-31lldb/source/Commands/CommandObjectScripting.cpp
+3,009-31110 files not shown
+5,145-1,090116 files

LLVM/project 6e62720polly/test lit.cfg, polly/test/UnitIsl lit.cfg

[Polly] Remove ability to use external shell

The external shell is getting removed soon, so remove the ability to
force enable it for polly tests.

Reviewers: ilovepi, Meinersbur, petrhosek

Pull Request: https://github.com/llvm/llvm-project/pull/209566
DeltaFile
+1-12polly/test/lit.cfg
+1-11polly/test/UnitIsl/lit.cfg
+2-232 files

LLVM/project d18dc1bbolt/test/X86 dwarf-inline-range-plt-shift.s, clang/unittests/ScalableStaticAnalysis/Serialization/JSONFormatTest SharedLexicalRepresentationFormatTest.cpp

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+1,437-0llvm/test/Instrumentation/MemorySanitizer/X86/avx512dq-intrinsics.ll
+614-0bolt/test/X86/dwarf-inline-range-plt-shift.s
+317-0llvm/lib/Target/NVPTX/NVPTXPromoteParamAlign.cpp
+259-0clang/unittests/ScalableStaticAnalysis/Serialization/JSONFormatTest/SharedLexicalRepresentationFormatTest.cpp
+217-0llvm/test/CodeGen/NVPTX/promote-param-align.ll
+165-31lldb/source/Commands/CommandObjectScripting.cpp
+3,009-31110 files not shown
+5,145-1,090116 files

LLVM/project 4376c0bmlir/test lit.cfg.py

[MLIR] Remove ability to use external shell

The external shell is getting removed soon, so clean up the logic here
to enable it.

Reviewers: petrhosek, jpienaar, ilovepi, joker-eph

Pull Request: https://github.com/llvm/llvm-project/pull/209565
DeltaFile
+1-11mlir/test/lit.cfg.py
+1-111 files

LLVM/project a91b301bolt/test/X86 dwarf-inline-range-plt-shift.s, clang/unittests/ScalableStaticAnalysis/Serialization/JSONFormatTest SharedLexicalRepresentationFormatTest.cpp

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+1,437-0llvm/test/Instrumentation/MemorySanitizer/X86/avx512dq-intrinsics.ll
+614-0bolt/test/X86/dwarf-inline-range-plt-shift.s
+317-0llvm/lib/Target/NVPTX/NVPTXPromoteParamAlign.cpp
+259-0clang/unittests/ScalableStaticAnalysis/Serialization/JSONFormatTest/SharedLexicalRepresentationFormatTest.cpp
+217-0llvm/test/CodeGen/NVPTX/promote-param-align.ll
+165-31lldb/source/Commands/CommandObjectScripting.cpp
+3,009-31110 files not shown
+5,145-1,090116 files

LLVM/project b208160clang/test lit.cfg.py, clang/test/Analysis/exploded-graph-rewriter lit.local.cfg

[Clang] Drop ability to use the external shell

The external shell in lit is getting deleted soon and it will soon no
longer be possible to force enable it.

Reviewers: compnerd, petrhosek, ilovepi

Pull Request: https://github.com/llvm/llvm-project/pull/209564
DeltaFile
+1-12clang/test/lit.cfg.py
+1-2clang/test/Analysis/exploded-graph-rewriter/lit.local.cfg
+1-2clang/test/Analysis/scan-build/lit.local.cfg
+1-2clang/utils/perf-training/bolt.lit.cfg
+1-2clang/utils/perf-training/lit.cfg
+1-2clang/utils/perf-training/order-files.lit.cfg
+6-223 files not shown
+9-259 files

LLVM/project f4eb688bolt/test/X86 dwarf-inline-range-plt-shift.s, clang/unittests/ScalableStaticAnalysis/Serialization/JSONFormatTest SharedLexicalRepresentationFormatTest.cpp

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+1,437-0llvm/test/Instrumentation/MemorySanitizer/X86/avx512dq-intrinsics.ll
+614-0bolt/test/X86/dwarf-inline-range-plt-shift.s
+317-0llvm/lib/Target/NVPTX/NVPTXPromoteParamAlign.cpp
+259-0clang/unittests/ScalableStaticAnalysis/Serialization/JSONFormatTest/SharedLexicalRepresentationFormatTest.cpp
+217-0llvm/test/CodeGen/NVPTX/promote-param-align.ll
+165-31lldb/source/Commands/CommandObjectScripting.cpp
+3,009-31109 files not shown
+5,137-1,082115 files

LLVM/project e824f1allvm/lib/Target/RISCV RISCVSchedAndes45.td

[RISCV] Rename VLSU_MEM_LATENCY to Andes45VLSU_MEM_LATENCY in RISCVSchedAndes45.td (#209388)

Prefix the defvar with the Andes45 scheduler name to match the other
Andes45-local defvars (e.g. Andes45DLEN) and avoid a bare, generic name
in the shared RISC-V TableGen namespace.

Co-authored-by: Claude Opus 4.8 (1M context) <noreply at anthropic.com>
DeltaFile
+8-8llvm/lib/Target/RISCV/RISCVSchedAndes45.td
+8-81 files

LLVM/project 2778658bolt/test/X86 dwarf-inline-range-plt-shift.s, clang/unittests/ScalableStaticAnalysis/Serialization/JSONFormatTest SharedLexicalRepresentationFormatTest.cpp

feedback

Created using spr 1.3.7
DeltaFile
+1,437-0llvm/test/Instrumentation/MemorySanitizer/X86/avx512dq-intrinsics.ll
+614-0bolt/test/X86/dwarf-inline-range-plt-shift.s
+317-0llvm/lib/Target/NVPTX/NVPTXPromoteParamAlign.cpp
+259-0clang/unittests/ScalableStaticAnalysis/Serialization/JSONFormatTest/SharedLexicalRepresentationFormatTest.cpp
+217-0llvm/test/CodeGen/NVPTX/promote-param-align.ll
+165-31lldb/source/Commands/CommandObjectScripting.cpp
+3,009-3196 files not shown
+5,036-1,025102 files

LLVM/project e82736dbolt/test/X86 dwarf-inline-range-plt-shift.s, clang/unittests/ScalableStaticAnalysis/Serialization/JSONFormatTest SharedLexicalRepresentationFormatTest.cpp

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+1,437-0llvm/test/Instrumentation/MemorySanitizer/X86/avx512dq-intrinsics.ll
+614-0bolt/test/X86/dwarf-inline-range-plt-shift.s
+317-0llvm/lib/Target/NVPTX/NVPTXPromoteParamAlign.cpp
+259-0clang/unittests/ScalableStaticAnalysis/Serialization/JSONFormatTest/SharedLexicalRepresentationFormatTest.cpp
+217-0llvm/test/CodeGen/NVPTX/promote-param-align.ll
+165-31lldb/source/Commands/CommandObjectScripting.cpp
+3,009-3195 files not shown
+5,036-1,024101 files

LLVM/project 6ce9488llvm/utils/lit/tests shtest-run-at-line.py shtest-timeout.py, llvm/utils/lit/tests/Inputs/shtest-readfile lit.cfg

[lit] Remove most external shell test coverage

Now that LLVM 23 has branched, we can look at removing the external
shell.

https://discourse.llvm.org/t/rfc-removal-of-the-lit-external-shell/90951

This patch removes most test coverage that was explicitly for the
external shell as it was entirely duplicated with the internal shell.
This patch leaves out removing test coverage in shtest-format as not all
the coverage there is duplicated and it seems like there is some missing
from the internal shell and I want to give it more careful
consideration.

Reviewers: hnrklssn, ilovepi, jh7370, arichardson

Pull Request: https://github.com/llvm/llvm-project/pull/209500
DeltaFile
+5-53llvm/utils/lit/tests/shtest-run-at-line.py
+7-30llvm/utils/lit/tests/shtest-timeout.py
+0-36llvm/utils/lit/tests/shtest-external-shell-kill.py
+0-25llvm/utils/lit/tests/shtest-readfile-external.py
+0-12llvm/utils/lit/tests/Inputs/shtest-run-at-line/external-shell/line-continuation.txt
+1-11llvm/utils/lit/tests/Inputs/shtest-readfile/lit.cfg
+13-16721 files not shown
+44-25427 files

NetBSD/src QvOzfUmtests/kernel/arch/x86 sig_fpu.c

   t_signal_and_fpu: Add test case for AVX-512 ZMM registers.

   PR kern/60426: Signal handler corrupts AVX (YMM) registers
VersionDeltaFile
1.2+202-6tests/kernel/arch/x86/sig_fpu.c
+202-61 files

NetBSD/src rJRhKuxusr.bin/make meta.c

   meta_ignore use :N with .MAKE.META.IGNORE_PATTERNS

   By using :N .MAKE.META.IGNORE_PATTERNS is just a special case
   of .MAKE.META.IGNORE_FILTER and processed the same way.
VersionDeltaFile
1.225+13-17usr.bin/make/meta.c
+13-171 files

LLVM/project f89a594clang/test/CIR/CodeGenBuiltins/X86 avx10_2bf16-builtins.c avx10_2_512bf16-builtins.c

[CIR] Fix x86 builtin tests after tighter inlining (#209653)

The behavior of the AlwaysInliner was tightened in a recent change
(https://github.com/llvm/llvm-project/pull/209345) to avoid inling
functions with mismatched target attributes even when the alwaysinline
attribute was present. This exposed a few failures in CIR where we were
either running with stale target features or missing target features
that were needed for the builtins we were testing.

This change updates the run lines to use the correct feature sets.
DeltaFile
+3-3clang/test/CIR/CodeGenBuiltins/X86/avx10_2bf16-builtins.c
+2-2clang/test/CIR/CodeGenBuiltins/X86/avx10_2_512bf16-builtins.c
+1-1clang/test/CIR/CodeGenBuiltins/X86/keylocker.c
+6-63 files

LLVM/project da43ee6llvm/docs LangRef.rst LangRef.md, llvm/test/CodeGen/AMDGPU amdgcn.bitcast.1024bit.ll

Merge branch 'main' into fix-blockfreq-unroll-unconditional-latches--uniform
DeltaFile
+20,246-21,270llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
+0-33,190llvm/docs/LangRef.rst
+30,315-0llvm/docs/LangRef.md
+23,904-12llvm/test/CodeGen/RISCV/clmul.ll
+8,882-7,730llvm/test/MC/AMDGPU/gfx12_asm_vopc.s
+6,601-5,921llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-llvm.amdgcn.image.sample.a16.ll
+89,948-68,1238,879 files not shown
+556,549-389,2128,885 files

LLVM/project f7491eallvm/lib/Transforms/Utils MetaRenamer.cpp, llvm/test/Transforms/MetaRenamer opcodes.ll metarenamer.ll

[MetaRenamer] Change basic block naming from 'bb' to 'bbl' (#205393)

Currently, `update_test_checks.py` warns when run on MetaRenamer output
e.g., `WARNING: Change IR value name 'bb3' or use
--prefix-filecheck-ir-name to prevent possible conflict with scripted
FileCheck name.`

Avoid this conflict by changing MetaRenamer to use 'bbl' for basic
blocks.

This is similar in spirit to

https://github.com/llvm/llvm-project/commit/86a63b2ae147e5a3edc39643783acfd39b059c92,
which renamed instructions from 'tmp' to 'inst' to avoid a conflict with
automatically-generated checks.
DeltaFile
+9-9llvm/test/Transforms/MetaRenamer/opcodes.ll
+1-1llvm/lib/Transforms/Utils/MetaRenamer.cpp
+1-1llvm/test/Transforms/MetaRenamer/metarenamer.ll
+11-113 files

LLVM/project 97c6a88clang/test/Analysis/Scalable/TypeConstrainedPointers unsafe-buffer-reachable-excludes-type-constrained-new-delete.cpp

USR is not platform-independent. CheckFile matches should be flexible on types
DeltaFile
+3-3clang/test/Analysis/Scalable/TypeConstrainedPointers/unsafe-buffer-reachable-excludes-type-constrained-new-delete.cpp
+3-31 files

LLVM/project 52c30b3bolt/lib/Core DIEBuilder.cpp BinaryContext.cpp

[BOLT] Stop materializing .dwo DIE vectors early in the pipeline

Summary: preprocessDWODebugInfo() eagerly force-extracted every .dwo
compile unit's DIE tree (getNonSkeletonUnitDIE(false)) very early in
BOLT pipeline, way before DWARFRewriter kicked in. Those vectors then
sit in memory throughout the entire rewrite pipeline, directly
contributing to BOLT's RSS peak. I did a fair amount of digging and
didn't find any reason as to why we need to keep all DIEs of DWO CU
materialized at all, since DWARFRewriter won't even read this vector
(the #197359 concurrency fix did use that, but that is unnecessary).
The problem is that these DIE trees are a massive contribution to RSS
when processing large binaries where we have 10s of K of dwos, storing
complete trees for each processed dwo.

This diff changes the #197359 concurrency fix to not rely on the DIE
sibling/children structure. It parses DWP type units selectively per
compile unit (DIEBuilder::buildDWPTypeUnitsForUnit ->
collectReferencedTypeSignatures) by finding the DW_FORM_ref_sig8
references in a unit's DIEs to decide which type units belong in that

    [23 lines not shown]
DeltaFile
+19-17bolt/lib/Core/DIEBuilder.cpp
+8-8bolt/lib/Core/BinaryContext.cpp
+27-252 files

LLVM/project a6d35f4lldb/source/Plugins/Protocol/MCP Tool.cpp Tool.h, lldb/unittests/Protocol MCPPluginTest.cpp

[lldb] Add MCP tools to create and destroy debugger instances (#209288)

Add debugger_create and debugger_delete tools to the MCP server so a
client can manage debugger instances, not just command the ones that
already exist. debugger_create detaches the new debugger's stdio from
the host process (redirecting input/output/error to the null device) so
its prompt and asynchronous output cannot corrupt an MCP stream that
shares the host's stdout. Command results flow through
CommandReturnObject and are unaffected.

Factor the tool and resource registration out of
ProtocolServerMCP::Extend into a shared PopulateServer() so an embedded
in-process server (e.g. in lldb-mcp) can install the same set.

Assisted-by: Claude

rdar://181722721
DeltaFile
+78-2lldb/unittests/Protocol/MCPPluginTest.cpp
+78-0lldb/source/Plugins/Protocol/MCP/Tool.cpp
+20-0lldb/source/Plugins/Protocol/MCP/Tool.h
+9-1lldb/source/Plugins/Protocol/MCP/ProtocolServerMCP.cpp
+5-0lldb/source/Plugins/Protocol/MCP/ProtocolServerMCP.h
+190-35 files

LLVM/project e2ead47llvm/test/MC/RISCV xqcicm-invalid.s xqcibm-invalid.s

[RISCV][MC][NFC] Cleanup Xqci Tests (#209646)
DeltaFile
+61-48llvm/test/MC/RISCV/xqcicm-invalid.s
+62-32llvm/test/MC/RISCV/xqcibm-invalid.s
+50-34llvm/test/MC/RISCV/xqcilo-invalid.s
+46-38llvm/test/MC/RISCV/xqcics-invalid.s
+34-26llvm/test/MC/RISCV/xqcilia-invalid.s
+38-20llvm/test/MC/RISCV/xqcisync-invalid.s
+291-19811 files not shown
+512-33817 files

LLVM/project 6dc5473bolt/include/bolt/Core BinaryFunction.h BinaryContext.h, bolt/lib/Core BinaryContext.cpp BinaryFunction.cpp

[BOLT] Fix shifted DWARF inline-scope ranges; track scope boundaries (#207291)

Summary:
BOLT updated DWARF lexical-scope ranges (DW_TAG_inlined_subroutine /
lexical_block low_pc/high_pc and DW_AT_ranges) via
translateInputToOutputRange(), which mapped a boundary using its input
offset relative to the start of the containing basic block:

OutAddr = BB.getOutputAddressRange().first + (InputOffset -
BB.getOffset())

This assumes intra-block byte offsets are preserved input->output. Any
pass that changes instruction sizes within a block ahead of a scope
boundary breaks that assumption. With --plt=all, each `call foo at PLT` (5
bytes, e8+rel32) is rewritten to `call *foo at GOT(%rip)` (6 bytes, ff
15+rel32); N such calls before a boundary shift its emitted low_pc/
high_pc N bytes too early, onto the preceding instruction. The range
stays within the parent so `llvm-dwarfdump --verify` does not catch it;
symbolizers then attribute samples on those instructions to the wrong

    [44 lines not shown]
DeltaFile
+614-0bolt/test/X86/dwarf-inline-range-plt-shift.s
+82-0bolt/lib/Core/BinaryContext.cpp
+39-13bolt/lib/Core/BinaryFunction.cpp
+30-4bolt/include/bolt/Core/BinaryFunction.h
+5-10bolt/include/bolt/Core/BinaryContext.h
+14-0bolt/lib/Rewrite/RewriteInstance.cpp
+784-271 files not shown
+788-297 files

LLVM/project 5be3fdblldb/include/lldb/Host Editline.h, lldb/source/Host/common Editline.cpp

[lldb] Use std::atomic<bool> for Editline's pending-resize flag (#209619)

TerminalSizeChanged() used a volatile std::sig_atomic_t to record that a
resize is pending. That type was chosen because the SIGWINCH handler ran
in async-signal context and could only touch an sig_atomic_t. Signals
are now handled on a dedicated thread, so the flag is written from a
normal thread and std::atomic<bool> is sufficient to handle that.

el_resize() still runs on the thread that owns libedit, in its read
loop. I discovered that it is not safe to run elsewhere, because it
resets libedit's display model without redrawing. Applying it off that
thread seems to throw it off and makes it duplicate the prompt.
DeltaFile
+6-2lldb/include/lldb/Host/Editline.h
+2-2lldb/source/Host/common/Editline.cpp
+8-42 files

FreeBSD/ports acd4138databases Makefile, databases/datui distinfo Makefile.crates

databases/datui: New port: Data exploration in the terminal
DeltaFile
+1,063-0databases/datui/distinfo
+530-0databases/datui/Makefile.crates
+29-0databases/datui/Makefile
+9-0databases/datui/pkg-descr
+1-0databases/Makefile
+1,632-05 files

LLVM/project 3f58d3dlldb/test/API/functionalities/statusline TestStatusline.py statusline_flood.py

[lldb][test] Deflake the statusline scripted-command output test (#209643)

test_scripted_command_output_not_eaten failed intermittently in CI on
its assertIn(b"\x1b7", data) guard because the captured window held no
statusline escape at all, only the command output and the next prompt.

The cause is a thread-scheduling race, not a bug. The statusline is
redrawn on the event thread once per progress event, but on a loaded
machine the event thread need not run until the flood command has
already returned, so it drains the queued progress events after (lldb)
was matched and the capture stopped, leaving no redraw to inspect.

Widen the flood (the line count is now an argument) so the event thread
has a larger window to redraw in, and retry until at least one complete
cursor save/restore pair is observed before checking that no output was
spliced into it. If a redraw is never seen, skip rather than fail.

I deliberately avoided a per-line sleep as it would let each redraw
finish between prints and hide the very interleaving the test looks for.

Fixes #209605
DeltaFile
+40-26lldb/test/API/functionalities/statusline/TestStatusline.py
+4-1lldb/test/API/functionalities/statusline/statusline_flood.py
+44-272 files