Repository navigation
Support fused masked element loops and preserve PE-domain Tile contracts - #131
Merged
Merged
Conversation
This was referenced Oct 18, 2026
VV0003
force-pushed
the
codex/pto-element-legacy-gfrun-followup
branch
from
October 20, 2026 03:10
a08e1c2 to
47557a0
Compare
VV0003
marked this pull request as ready for review
October 20, 2026 03:13
This was referenced Oct 20, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fused element loops that read input and update a separate histogram were rejected after outlining because ordinary helper pointers lost caller alias facts. Prove whole-object separation across every direct caller of closed local helpers, including forwarding and argument/global roots, and attach scoped metadata only to proven access pairs. Unknown, exported, address-taken, recursive and mixed-alias contexts remain fail-closed. Identical zero stores may commute only when full-width alignment excludes partial overlap; conflicting loads/atomics and nonzero stores retain the original legality checks.
Preserve exact reduction result descriptors, runtime geometry and queue publications through mixed Tile/element code. Marked regions require generic masked Tile lowering and reject unsupported effects or residual annotations; no scalar fallback, implicit restrict, forced inlining or forced unrolling is introduced.
Add explicit PE-domain boundaries with closed-callgraph specialization. Preserve domain metadata across compression, every MC pseudo expansion and assembly roundtrip; validate nondefault masks as subsets. Unprocessed mixed translation units, unknown calls, raw/escaping asm, unsupported Shared operations and Tile-pointer domain crossings reject. Default-domain linked helpers remain available alongside specialized clones.
Integrate upstream
dev-llvm15_56at78b74f4a614e61b8992abeb315da9c3bd058aa86, including canonical reuse families and standalone TLSU/CUBE headers. Retain Local source operands for the generic masked profile, including copies created late by queue normalization; legacy finalization only changes generated descriptor copies. Explicit legacy lifetimes and descriptor/capacity/defined-source checks remain intact. This fixes actual gather, MegaMoE and issue130 failures without relaxing the model.Qualified on frozen LLVM
a08e1c228dbe8b5fe45a6c613fec6a78499ab920, API1f72e918fcbb72569d8e28dda11f7c579a06dab2, benchmark code693d25349b9e17bad57fe7d281be258140d649ba, and unchanged gfrun0a237ccfe8404d73d92dd144a6af539b2b0ebc5a. The subsequent benchmark documentation commit records these exact code pins. All runtime cases keep the 120-second gfrun timeout and original resource limits./tmp/pto-element-fusion-20261019/final-v19-audit.json(SHA256ec21921ce2f554e78131ee12be39e9ebc151d7a62d999f1093a51aa814eed0c4).This qualifies the declared gfrun profiles. gfsim/timing, forced Tile spill runtime, and lifetime retirement semantics are not qualified. The original application inventory remains 17/21 with four pending profiles, distinct from solution21/21. LLVM still has 28 legacy pragma fixtures outside this closure and a valid guard-correlated issue60 proof gap. Broad MC accounting is 82 PASS, 1 XFAIL, and three historical failures (
CUBE_Mamulb,MTC_Tloadstore,pto-tileop-macro-ranges); no all-LLVM-tests-green claim.Companion PRs: LLVM #131, TileOP API #281, SuperNPUBench #252, gfrun #949.