feat(ptodsl): Migrate TileLib from TilelangDSL to PTODSL: Daemon and metadata#931
feat(ptodsl): Migrate TileLib from TilelangDSL to PTODSL: Daemon and metadata#931Zhendong404 wants to merge 60 commits into
Conversation
… and constraint support
…f the changed files
There was a problem hiding this comment.
Code Review
This pull request introduces the PTODSL TileLib backend for VPTO tile-op expansion, adding the InsertTemplateAttributes pass to query legal candidates and updating ExpandTileOp to support PTODSL-native templates with robust specialization caching. It also implements the Python-side TileLib serving daemon, registry, and ported templates. The review feedback highlights critical compilation errors in FoldTileBufIntrinsics.cpp where MLIR Op wrappers incorrectly use the . operator instead of -> to access Operation methods, as well as a minor capitalization inconsistency in the design documentation.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
| if (memrefCastOp.getNumOperands() == 1 && memrefCastOp.getNumResults() == 1 && | ||
| isa<MemRefType>(memrefCastOp.getOperand(0).getType()) && | ||
| isa<MemRefType>(memrefCastOp.getResult(0).getType())) { | ||
| castOp = memrefCastOp; | ||
| memrefVal = memrefCastOp.getOperand(0); |
There was a problem hiding this comment.
In MLIR, Op wrappers (like UnrealizedConversionCastOp) do not inherit Operation methods directly via the . operator. To access Operation methods such as getNumOperands(), getNumResults(), getOperand(), and getResult(), you must use the -> operator or call getOperation(). Using . will result in a compilation error.
| if (memrefCastOp.getNumOperands() == 1 && memrefCastOp.getNumResults() == 1 && | |
| isa<MemRefType>(memrefCastOp.getOperand(0).getType()) && | |
| isa<MemRefType>(memrefCastOp.getResult(0).getType())) { | |
| castOp = memrefCastOp; | |
| memrefVal = memrefCastOp.getOperand(0); | |
| if (memrefCastOp->getNumOperands() == 1 && memrefCastOp->getNumResults() == 1 && | |
| isa<MemRefType>(memrefCastOp->getOperand(0).getType()) && | |
| isa<MemRefType>(memrefCastOp->getResult(0).getType())) { | |
| castOp = memrefCastOp; | |
| memrefVal = memrefCastOp->getOperand(0); |
| func.walk([&](UnrealizedConversionCastOp castOp) { | ||
| if (castOp.use_empty() && castOp.getNumOperands() == 1 && | ||
| isa<MemRefType>(castOp.getOperand(0).getType()) && | ||
| isa<MemRefType, pto::PartitionTensorViewType, pto::TileBufType>( | ||
| castOp.getResult(0).getType())) | ||
| deadCasts.push_back(castOp); | ||
| }); |
There was a problem hiding this comment.
Similar to the previous issue, castOp is an UnrealizedConversionCastOp wrapper object. You must use the -> operator to access Operation methods like use_empty(), getNumOperands(), getOperand(), and getResult() to avoid compilation errors.
| func.walk([&](UnrealizedConversionCastOp castOp) { | |
| if (castOp.use_empty() && castOp.getNumOperands() == 1 && | |
| isa<MemRefType>(castOp.getOperand(0).getType()) && | |
| isa<MemRefType, pto::PartitionTensorViewType, pto::TileBufType>( | |
| castOp.getResult(0).getType())) | |
| deadCasts.push_back(castOp); | |
| }); | |
| func.walk([&](UnrealizedConversionCastOp castOp) { | |
| if (castOp->use_empty() && castOp->getNumOperands() == 1 && | |
| isa<MemRefType>(castOp->getOperand(0).getType()) && | |
| isa<MemRefType, pto::PartitionTensorViewType, pto::TileBufType>( | |
| castOp->getResult(0).getType())) | |
| deadCasts.push_back(castOp); | |
| }); |
| - `fusible` | ||
| - `loop_depth` | ||
| - `id` | ||
| - `Tail` |
There was a problem hiding this comment.
Codex Review该评论由 review 机器人自动更新。
SummaryReview failed at stage Findings未生成结构化 findings,因为 review 过程提前失败。 Log Tail |
|
/run a3 |
|
/run a5 |
|
已接收
页面会自动刷新,可以直接看当前阶段、排队情况和最近结果。 |
|
已接收
页面会自动刷新,可以直接看当前阶段、排队情况和最近结果。 |
A5 板测失败
日志尾部 |
A3 板测完成(有跳过)
|
No description provided.