[lldb][NFC] Split up TestMultithreaded.py (#231856)
This splits the big and slow TestMultithreaded test into several smaller
tests. This allows running subtests in parallel.
It also makes it more obvious which of the subtests is flakey as the
test sometimes hangs on the bots without any output.
[mlir][SPIRV] Support Alignment and FuncParamAttr on parameters (#231069)
Clang-produced SPIR-V can decorate function parameters with Alignment
and one or more FuncParamAttr decorations. The deserializer currently
rejects these decorations, preventing such modules from being imported.
Represent Alignment as a signless i32 attribute and FuncParamAttr as an
array of typed FunctionParameterAttribute attributes. Preserve both when
deserializing and serializing function definitions and declarations,
including parameters that also carry an existing decoration.
Verify the attribute types, reject duplicate or mutually exclusive
parameter attributes, and enforce the pointer and Sret position
requirements. Add round-trip coverage for all core enumerants and an
alignment with its high bit set, verifier diagnostics, and malformed
binary tests.
[SLP] NFC: make candidate state ownership explicit
BoUpSLP contains a mixture of state which relates to the current
candidate and state which persists beyond its lifetime. Gather this
state onto a new CanidateState object which belongs to BoUpSLP.
I think this is compatible with the existing modularisation proposal.
Assisted-by: codex
[lldb][Windows][NFC] Factor out NativeThreadWindows::SetSingleStepFlag (#231488)
Move the code that sets the trace flag out of `DoResume` so it can be
reused by llvm#227353.
[lldb][test] Use thread index IDs in TestNumThreads.test_unique_stacks (#231491)
The test assumes the thread at index `i` has index ID `i + 1`, which
doesn't hold when thread IDs aren't contiguous.
Use `GetIndexID()` instead.
[lldb][Windows] Hold the process and thread list locks in OnCreateThread and OnExitThread (#231489)
`OnExitThread` modifies `m_threads` without holding `m_mutex`, unlike
the other debug event handlers.
This patch makes `OnCreateThread` hold `m_threads_mutex` for its whole
body, so the new thread is set up and added to the list under one lock.
[CIR][SPIR-V] Split SPIR and SPIR-V target lowering to keep atomic sync scopes (#231754)
Split SPIR and SPIR-V target lowering so only spir maps every sync scope
to System, like classic codegen
[SCEV] Derive x >=s 0 from x <u y when y is non-negative
If x <u y and y <=u 2^(n-1) (e.g. y >=s 0), then x >=s 0.
Prove this in SCEV's isImpliedCondBalancedTypes so a guard
like "start <u len" proves start >=s 0. This also covers
x <=u y with y up to INT_MAX, which reaches the implication
code canonicalized as x <u y + 1.
The query is proven from the derived fact via
isImpliedCondOperands, so weaker bounds (x >=s c, c <= 0) follow
too.
y is checked via ranges only, to keep compile time low.
Co-Authored-By: Claude Sonnet 5.5 <noreply at anthropic.com>
[SCEV][NFC] Precommit tests for x <u y && y >=s 0 implying x >=s 0
SCEV derives x <s y from x <u y && y >=s 0, but not x >=s 0, so a loop
guarded by "start <u len" with a non-negative len does not prove
start >=s 0.
Add unit tests for isImpliedCond and an IndVars lit test.
Checks SCEV cannot prove yet are marked FIXME.
Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
[orc-rt] Complete the static/global x load/store data tests. (#231853)
Binding affects which fixups a store uses: static data is always
addressed directly, so the store carries a fixup, while global data may
be addressed through the GOT. Add static-data-store.c to cover the
former, and global-data-load.c to complete the grid.
Update the Stresses: lines to say what each test checks: load tests
check the section's initial contents, and store tests check that it is
writable.