[mlir][OpenACC] Skip implicit routine marking for host-only calls (#227758)
Calls nested in a host-only branch of `acc.on_device` do not run on the
device. Do not try to attach implicit acc routine information to them.
[CI] Exclude CIR from Windows premerge testing (#229208)
After #227957, the check-clang-cir target is only defined when
CLANG_ENABLE_CIR is ON. The Windows premerge build never sets that
option (only monolithic-linux.sh receives enable_cir), but
compute_projects.py still selects check-clang-cir for CIR changes on
Windows. Every PR touching CIR now fails the Windows job before any test
runs:
ninja: error: unknown target 'check-clang-cir'
Before #227957 the target existed unconditionally, and the CIR tests
were all unsupported on Windows because CIR was disabled, so excluding
CIR there loses no coverage. It also stops building mlir for CIR-only
changes on Windows.
Enabling real CIR testing on Windows (passing enable_cir through to
monolithic-windows.sh) can be done separately.
[2 lines not shown]
[DWARFLinker] Relocate DW_OP_addrx by the delta of its own symbol (#228583)
When rewriting DW_OP_addrx or DW_OP_constx into a relocated address,
DWARFLinker applied the adjustment of whatever owned the expression.
For a location list that is the enclosing function, but the .debug_addr
entry may name a data symbol, which the linker moves by a different
amount. For a variable holding the address of _g at 0x100004008 this
produced:
[0x100000418, 0x100000424): DW_OP_addr 0x100000790, DW_OP_stack_value
Look up the relocation of each operand's own .debug_addr slot instead,
the way a variable's single location is already handled, and fall back
to the owner's adjustment only where there is none. Do this in both the
classic and the parallel linker.
rdar://188852150
Assisted-by: Claude
www/evcc: update to 0.316.2
Switch back to vite for building till vite-plus got full native
FreeBSD support (vite-plus tries to download linux binaries).
Switched back to node24, node26 core-dumps while executing npm.
Add braces to multi-line if in asm parser
Change-Id: I20476ccf51eb2901a1181aa038d15e6c1e99e8cc
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply at anthropic.com>
[VPlan] Handle div/rem replicate recipes outside regions in cost. (#229203)
VPReplicateRecipe::computeCost unconditionally dereferenced getRegion()
for div/rem recipes. A non-single-scalar replicate recipe may be hoisted
out of the loop region into the vector preheader, where getRegion()
returns nullptr, causing a crash. Treat recipes outside any region as
unpredicated, matching the existing handling for loads and stores.
Fixes https://github.com/llvm/llvm-project/issues/229124.
Fix per-locator iterator lowering regressions
Reuse ordinary locator lowering inside depend and affinity iterators to
preserve component and vector-subscript dependence support. Keep locator
evaluation and temporary cleanup inside the iterator region so empty
selected ranges suppress evaluation. Preserve affinity section lengths.
Retain bound and step widths through widened trip-count calculation and
reconstruct induction values in their declared types. Reject iterated
dependences on unsupported target-data operations during translation.
Bind source-occurrence checks to each locator's ranges and yielded value.
Add locator, wide-range, empty-range, and target-data diagnostic coverage,
plus locators whose lowering adds control flow to the iterator region
(LEN_TRIM, allocatable function results, and SUM inlined at -O1).
Do not allow screen deletion while a VT switch is in progress. If done
asynchronously, depending on the display driver implementation of the
switching primitives, this could open a race with a risk of memory
corruption.
Problem found and fix provided by Acts1631.
from miod@
this is errata/7.9/034_wsdisplay.patch.sig
Do not allow screen deletion while a VT switch is in progress. If done
asynchronously, depending on the display driver implementation of the
switching primitives, this could open a race with a risk of memory
corruption.
Problem found and fix provided by Acts1631.
from miod@
this is errata/7.8/070_wsdisplay.patch.sig
Add middleware support for LIO ALUA HA
Wire up the middleware side of LIO ALUA high-availability: load
lio_ha.ko with per-node addresses on service start, manage ALUA
state across failover events, clean up STANDBY configfs on pool
export, and add pre-flight validation that targets have static
initiator ACLs before ALUA can be enabled.
For each target, create a portal-less phantom TPG carrying the peer
node's controller group so that a single RTPG response from any
connected port lists both ALUA groups. Write tpgt_N/rtpi explicitly
before enable so that relative target port IDs in RTPG match the
tag formula (portal.tag on Node A, portal.tag + 32000 on Node B)
rather than being auto-assigned sequentially by the kernel.
ALUA group states are driven by role and ha_state:
MASTER + synced local=OPTIMIZED remote=NONOPTIMIZED
MASTER + connected local=OPTIMIZED remote=TRANSITIONING
[4 lines not shown]
[AMDGPU] Reserve ENABLE_WAVEFRONT_SIZE32 on gfx125
Wave32-only targets (gfx1250, gfx1250-strict, gfx1251, gfx12-5-generic)
reserve the kernel descriptor's ENABLE_WAVEFRONT_SIZE32; it must be 0.
The compiler set it to 1.
The wave size is selectable only on targets with both supports-wave32
and supports-wave64. Elsewhere, clear the bit, stop printing
.amdhsa_wavefront_size32, and reject the directive in the assembler.
The disassembler now rejects a set bit on every target without a
selectable wave size. This replaces the gfx9-only check and also covers
GFX6-GFX8, matching the documentation.
Document which targets select the wave size through this bit.
Change-Id: I0c3942272f03ff5aba04a15ca063b7a02e6fed06
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply at anthropic.com>
[mlir][flang][OpenMP] Select depend and affinity iterators per locator
Flang expands each iterator-dependent depend or affinity locator over all
ranges in the clause, including iterators absent from that locator. For
example:
depend(iterator(i=1:2, j=3:m), in: a(i))
When m < 3, the unused empty j range suppresses both required dependences
on a. This can lose task ordering. A nonempty unused range instead repeats
entries unnecessarily; affinity locators have the same expansion problem.
Select ranges according to the iterator identifiers appearing in each
locator's source, preserving declaration order. Making this change safely
also requires preserving source occurrences and handling empty ranges:
- Record resolved iterator references before using the folded expression
for lowering. In a(j/d + 0*i), folding removes 0*i, but an empty i range
must still suppress the locator and prevent evaluation of j/d.
[16 lines not shown]
DAG: Fix error message casing to match style policy
The developer guidelines suggests that diagnostic messages should start with a
lowercase letter and not end in a period
Co-authored-by: Claude <noreply at anthropic.com>