ice(4): reduced max. tso segs to 64
With many ice(4) interfaces and many CPU cores we will run out of devbuf
memory fast. In worst cases tests, not more than 57 segs where used.
Thus, we reduce the max. no. of segs per tso packet to support a larger
number of interfaces interfaces.
ok stsp@
[mlir][LLVM] Add LLVM::getLoopAnnotationAttrName() (#224060)
Provide a single name for attaching LoopAnnotationAttr as a discardable
attribute and use it in FIR, OpenACC, and CF-to-LLVM lowering instead of
hardcoded "loop_annotation" / Attr::name.
Reland "[AMDGPU] PromoteAlloca: flatten homogeneous structs to vectors" (#221058)
This relands #217055
The original commit revealed a latent issue in eliminateFrameIndex in
SIRegisterInfo where SCC can be clobbered before reading it on
gfx900/gfx90a. This change itself has no known issues.
[AMDGPU] Don't spill an SGPR while SCC is live in frame index lowering
When SCC is live into a scalar frame index user, the scaling path avoids
SALU ops that write SCC by computing the address in a VGPR and reading it
back with V_READFIRSTLANE_B32. If the destination of that readfirstlane is
scavenged with spilling allowed, an AMDGPU SGPR spill writes inactive
lanes, so it flips EXEC with S_NOT_B64 and clobbers SCC. Instead, scavenge
that register with AllowSpill=false.
[AMDGPU] Prevent SCC clobber in frame index lowering in scaling path
eliminateFrameIndex has two lowering strategies, but only one has the
proper handling for checking SCC-liveness to prevent clobbering. Unify
them with a helper function to ensure both paths handle the same
[mlir][vector] Reject a 0-d operand in the outerproduct parser (#219917)
`vector.outerproduct` builds its result type from dimension 0 of its
operands, which a 0-d vector does not have, so `mlir-opt` aborts while
parsing, before the verifier gets a chance to report anything:
```mlir
%0 = vector.outerproduct %a, %b : vector<f32>, vector<4xf32>
```
The parser now emits the same diagnostic the verifier already gives for
that operand, `expected 1-d vector for operand #1`. Only rank 0 is
caught here, rank 2 and above still reach the verifier unchanged.
This PR started out touching three parsers and was narrowed to
`outerproduct` at review request. The `transfer_read`/`transfer_write`
and `contract` parsers follow as separate PRs.
[flang][OpenACC] Skip non-loop evaluations when descending a collapsed/tiled DO nest (#223579)
## Summary
- The collapse/tile loop-nest descent in `Bridge.cpp` (used for OpenACC
`collapse`/`tile` and CUDA Fortran `!$cuf kernel do`) assumed each loop
level's nested evaluations have the fixed shape `{NonLabelDoStmt,
DoConstruct, EndDoStmt}` and unconditionally advanced to the second
nested evaluation to find the next inner `DO`.
- A compiler directive (e.g. `!DIR$ IVDEP`) placed between loop levels
inserts an extra sibling evaluation there, so the descent landed on the
directive instead of the inner `DoConstruct` and lowered the directive's
(empty) nested evaluations as the loop body — silently dropping the real
body with no diagnostic.
- Adds a helper that searches a level's nested evaluations for the
actual `DoConstruct`, matching the approach already used by
`visitLoopControl` in `OpenACC.cpp`, and uses it at all three affected
descent sites (OpenACC collapse/tile, and the two CUDA Fortran kernel-do
sites).
[10 lines not shown]
[clang] Fix surrogate call through a using-declared conversion function (#221723)
Fixes #189146
A call to a class object that goes through a conversion function to a
function pointer ("surrogate call") asserted when that conversion
function had been brought into the class with a using-declaration, e.g.
`using M::operator auto;`. The surrogate loop in
`BuildCallToObjectOfClassType` unwraps the `UsingShadowDecl` to get the
conversion function but records the shadow as the candidate's
`FoundDecl`, so the two are not the same pointer and the assertion
fires. It wasn't only the assertion, though: the line before it passed
`FoundDecl` to `DiagnoseUseOfDecl`, which skips all of its function
checks on a shadow decl, and surrogates never go through `OR_Deleted`
since they carry no `Function`. So with the assertion relaxed, a deleted
conversion function reached through a using-declaration would have
compiled without complaint.
The surrogate branch now diagnoses use of the conversion function itself
[5 lines not shown]
www/py-proxpi: new port
PyPI caching mirror implemented as a Flask WSGI app. Proxies and
caches package indexes and file downloads from an upstream index,
reducing redundant downloads and allowing installs to continue
during upstream outages.