18327 zen topo module fails enumeration when hardware threads have no logical CPU
Reviewed by: Robert Mustacchi <rm at fingolfin.org>
Reviewed by: Toomas Soome <tsoome at me.com>
Approved by: Gordon Ross <gordon.w.ross at gmail.com>
18352 i2c ioctl tests race device tree reconfiguration
Reviewed by: Robert Mustacchi <rm at fingolfin.org>
Approved by: Gordon Ross <gordon.w.ross at gmail.com>
[LLVMOffload] Fix unitialized variable in test from #212373 (#216788)
This test was flaky due to using an uninitialized variable, leading to
buildbot failures. This PR initializes it to zero and renames the kernel
to `incrementCounter` to match.
ModuloSchedule: Fix using getVRegDef/getUniqueVRegDef on physregs
These should be invalid to use on physical registers, but are currently
permissive. Avoid calling them so in the future they can assert.
Also this pass seems to run in SSA, so shouldn't really be using
getUniqueVRegDef.
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
AMDGPU: Use mi_match for more manual selector patterns (#216726)
Use mi_match G_SHUFFLE_VECTOR/G_FRAME_INDEX/G_SUB checks. Add new
matchers to check the shufflevector and frame index cases, avoiding
raw getVRegDef uses.
Co-authored-by: Claude (Opus 4.8) <noreply at anthropic.com>
MachinePipeliner: Fix using getUniqueVRegDef on a physical register
Currently this is permissive and doesn't assert when called with
a physical register, but I'm working on changing this edge case.
No current observable change.
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
[clang][ssaf] Link static libraries and multi-arch static libraries (#215349)
This change introduces support for linking static libraries and
multi-arch static libraries. To implement this, we have added two `link`
overloads to the `EntityLinker`: a static library folds in as a bundle
of TU summaries, and a multi-arch static library contributes only the
static library with the matching target triple. The target triple is
supplied through a new optional flag, `--target-triple`. If unspecified,
it is inferred from the first input, if possible.
rdar://184656074
Avoid closely nested barriers in metadirective loops
A loop-associated metadirective replacement can introduce a worksharing or SIMD
loop after semantic analysis, allowing a BARRIER in its associated body to be
lowered with invalid close nesting.
Check the realized OpenMP operation ancestry at the common BARRIER emission
point. Reject the BARRIER when a worksharing or SIMD loop is encountered before
an intervening parallel region. This covers direct BARRIER directives, nested
metadirective replacements and bodies, and runtime-selected paths while
preserving unreachable arms and valid barriers inside parallel regions.
Add OpenMP 5.1 and 5.2 coverage for the rejected and permitted cases.
snd_hdspe: Avoid allocation in the interrupt handler
Cache PCM children and drain interrupt callbacks before detach.
Allocate the parent softc by its actual size.
Reviewed by: br
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D58370
snd_hdspe: Avoid allocation in the interrupt handler
Cache PCM children and drain interrupt callbacks before detach.
Allocate the parent softc by its actual size.
Reviewed by: br
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D58370
[mlir] Fix RemoveDeadRegionBranchOpSuccessorInputs producing invalid scf.for
RemoveDeadRegionBranchOpSuccessorInputs builds its tied-value sets from
RegionBranchOpInterface::getSuccessorOperandInputMapping, which is derived from
getSuccessorRegions. For an scf.for with a statically-known trip count of 1,
getSuccessorRegions drops the region->region back edge (the loop provably never
iterates back). That back edge is what forwards a yield operand to the region
iter_args, so without it an iter_arg and its corresponding op result are no
longer tied through a shared operand. The pattern then removes a dead iter_arg
without its (structurally required) result, producing an scf.for with
mismatched loop-carried counts:
'scf.for' op mismatch in number of loop-carried values and defined values
The greedy driver repairs this on a later iteration (InlineRegionBranchOp folds
the single-trip loop), so it is only observed with
MLIR_ENABLE_EXPENSIVE_PATTERN_API_CHECKS, which verifies the IR after every
pattern application. It shows up across Linalg tiling / pack-unpack /
convolution lowering and scf loop canonicalization; see issue #163599.
[15 lines not shown]
[bazel] Include Orc/Shared/SPSCI headers in OrcShared target (#216634)
This fixes two active bazel failures:
1. Update `OrcShared` in `llvm/BUILD.bazel` to recursively glob headers
under
`include/llvm/ExecutionEngine/Orc/Shared/**/*.h`.
2. libc float128 failures
Gemini assisted
[AArch64] Select sqdmulh for smul.fix.sat with scale == eltbits-1 (#211579)
Follow-up to #209351 (which vectorized the generic expansion): on
AArch64, smul.fix.sat with scale == eltbits-1 is exactly sqdmulh, so
select it directly instead of the generic clamp.
Remove overbroad metadirective block guards
Block data-environment guards added while hardening loop lowering also reject
valid block variants whose variables are handled by nested constructs or Fortran
scoping. General block DSA and host-association handling is outside this PR's
DO/SIMD replacement scope.
Remove the block-only guards while retaining the loop-associated safety checks.
Use task shared(x) in the architecture-selection test so it does not rely on
implicit task capture.
Reject trailing content in metadirective loop bodies
Loop-replacement lowering consumes only the associated DO. In a delimited
metadirective, it therefore drops following source statements when a loop variant
is selected, while a NOTHING variant retains them.
Diagnose such bodies until their remaining content can be lowered. Ignore
PFTBuilder's source-less synthetic CONTINUE and add static and runtime-selection
coverage for OpenMP 5.1 and 5.2.