feat(vmi): enumerate layout support facts - #1417
Draft
mouliangyu wants to merge 4 commits into
Draft
Conversation
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.
背景
layout cost solver 需要从同一份
VMILayoutSupportcontract 获取 operation relation 和显式 layout conversion 的完整合法性事实,不能复用旧 propagator 的 request/run 决策,也不能把未注册关系视为默认支持或零成本。修改
vexpdif等已注册规则。ensure_layout/ensure_mask_layout已注册行;未注册 endpoint pair 返回零个 fact,参数化 identity 在缺少有限锚点时明确失败。VMILayoutSupportVisitors.inc,现有单点查询复用同一遍历实现,避免 solver 与旧查询形成两套合法性规则。vexpdif、identity/注册/未注册 conversion。范围
本 PR 只提供 cost solver 所需的 support enumeration contract,不实现完整 cost solver,不改变 plan validator/applier 边界,也不修改旧 propagator 的 request/run 流程。
验证
ninja -C "$PTO_BUILD_DIR" PTOTransformsninja -C "$PTO_BUILD_DIR" pto-vmi-layout-support-test pto-test-opt"$PTO_BUILD_DIR/tools/pto-test-opt/pto-vmi-layout-support-test"llvm-lit -v "$PTO_BUILD_DIR/test/lit" --filter vmi_layout_support_enumerationninja -C "$PTO_BUILD_DIR" check-pto(1848 项:1847 passed,1 unsupported,0 failed)check_changed_code.py --repo . --base origin/main(交付文件集合:7 files,0 errors,0 warnings)