[CIR] Accept packed records in x86_64 callconv lowering
isSupportedType turned down any record CIR marks packed, so a signature
carrying one failed the pass. The reject predates the bridge reading field
offsets. RecordType::getElementOffset and the record's size already account
for packing, so the reject has nothing left to guard.
Delete it, with one exception. mapCIRType drops a zero-sized member before
classification, so a trailing zero-length array in a packed record passed in
a register where classic uses byval. That gets a narrower reject naming it.
A polymorphic class stays NYI for want of a vptr mapping, and a padded record
reached through a named bit-field access unit stays NYI on the existing
unit-width gap.
Assisted-by: Cursor / claude-opus-5
[flang] Extend LICM cheap nested hoisting to scalar loads (#217616)
Admit fir.address_of and scalar loads in the "cheap" nested-region
hoisting mode, which previously admitted only fir.convert. Loads are
limited to trivial non-vector types and to descriptors of known rank,
since vector loads may be wide and an assumed-rank descriptor load
becomes a runtime-sized descriptor copy. This is a cost heuristic change; both
modes share `shouldMoveFromNestedRegion`, so the safety conditions are
Admit fir.address_of and loads of trivial and descriptor types in the
"cheap" nested-region hoisting mode, which previously admitted only
fir.convert. This is a cost heuristic change; both modes share
`shouldMoveFromNestedRegion`, so the safety conditions are unchanged.
Test added to `flang/test/Transforms/licm.fir` cover the newly added
cases (scalar, global scalar, descriptor) and the boundary: derived-type
and vector loads are not hoisted, a volatile scalar load stays
conditional, and a global scalar read inside an OpenMP worksharing
region moves out of the inner serial loop while remaining inside
[4 lines not shown]
[offload] Use pinned memory for KLE
Reduce kernel launch latency by using the fast path "pinned host memory
-> device memory" for submitting the kernel launch environment to the
device.
Claude assisted with this patch.
net/liferea: work around feeds not updating
liferea may try to update it's feeds before it has completed network
subsystem initialisation (which includes soup sessions), putting
all feeds in a stuck state
AMDGPU: Add SubArchSpelling override to the TargetParser TableGen
Add an optional SubArchSpelling field for targets where the subarch name isn't
trivially derivable from it's gfxNMK name.
Co-Authored-By: Claude <noreply at anthropic.com>
[DirectX][SPIR-V] Fix `copysign` backend lowering (#217421)
Fixes #216826.
Adds `copysign` DirectX backend lowering and fixes the SPIR-V backend
lowering. Both lower with the bit manipulation `copysign(magnitude,
sign) = bitcast((bitcast(magnitude) & ~signBit) | (bitcast(sign) &
signBit))`, except the OpenCL path, which still emits `OpExtInst ...
copysign`.
Assisted-by: Claude Opus 4.8
[LLDB] Update DIL assignment to respect ValueObject::CanSetValue (#217960)
This will prevent DIL from allowing users to try to assign new values in
cases where that could lead to incorrect behavior.
[MLGO][CMake] Scope TensorFlow-AOT include usage (#218033)
## Summary
`TENSORFLOW_AOT_PATH` currently adds TensorFlow's include directory with
directory-wide `include_directories()`. This exposes TensorFlow's
bundled third-party headers to unrelated LLVM targets.
One concrete failure occurs when remote clangd is enabled: TensorFlow's
bundled Protobuf headers can shadow the Protobuf installation selected
for clangd's generated remote-index sources.
Replace the directory-wide include with a usage requirement on
`tf_xla_runtime`. Make the runtime dependency private to MLGO-owning
libraries, so those owners retain the TensorFlow headers they need while
unrelated targets do not inherit them. The runtime remains a link-only
dependency for final static linkers.
Fixes #218032.
[24 lines not shown]