You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
PR #860 introduces a P1 regression: the new default-on A5 fusion path is only partially enabled for VPTO, so fused IR can be produced without the required post-lowering lifecycle passes.
Findings
P1 Default A5 fusion does not enable the VPTO post-lowering fusion lifecycle tools/ptoas/ptoas.cpp:1488
The PR changes the frontend gate to enable fusion by default on A5 via opFusionEnabled in compilePTOASModule, but the VPTO post-lowering lifecycle still keys off the raw CLI option object: enableA5VPTOPostLoweringFusionLifecycle = enableOpFusion && moduleArchAttr && moduleArchAttr.getValue() == "a5". With the new tri-state flag, the default A5 path leaves enableOpFusion unset, so FusionPlan/OpScheduling/PTOFusionRegionGen now run by default, but PTOLowLevelLoopFusion, predicate/load-store elision, and flattening are skipped. That contradicts the documented contract in this PR and leaves pto.fusion_region in the VPTO path without the cleanup pipeline that previously made fused IR consumable, which is a high-risk correctness/runtime regression for the new default mode.
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
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.
Summary
--enable-op-fusiondefault to enabled on A5 and disabled on A3--enable-op-fusion=trueon A3 instead of silently ignoring it--enable-op-fusion=falseas the explicit opt-out on A5 and update docs/testsValidation
CCACHE_DISABLE=1 ninja -C build ptoasbuild/tools/ptoas/ptoas --pto-arch=a5 --pto-level=level2 --emit-pto-ir test/lit/tile_fusion/op_fusion_nonfused_control.pto -o -build/tools/ptoas/ptoas --pto-arch=a5 --pto-level=level2 --enable-op-fusion=false --emit-pto-ir test/lit/tile_fusion/op_fusion_nonfused_control.pto -o -build/tools/ptoas/ptoas --pto-arch=a5 --pto-level=level1 --enable-op-fusion=true test/lit/tile_fusion/op_fusion_cli_flags.pto -o /dev/nullbuild/tools/ptoas/ptoas --pto-arch=a3 --enable-op-fusion=true test/lit/tile_fusion/op_fusion_cli_flags.pto -o /dev/null