Pull Request已成功合入, 合并人@CANN-robot
(感谢 shengnan 的贡献)变更摘要
本次 PR 主要废弃了 exec_order 字段,移除了所有与 exec_order 相关的业务处理逻辑,但保留了该字段定义以保证向后兼容性。核心变更包括:在 protobuf 中将 exec_order 标记为 deprecated;删除 AscGraph 中的 SortByExecOrder() 和 CheckExecOrderValid() 方法;将 CreateContiguousData 接口改为接受显式 index 参数替代内部自动生成 exec_order;代码生成器不再输出 exec_order 赋值语句;序列化/反序列化逻辑不再处理 exec_order 字段。
主要改动
- Protobuf 字段废弃:
af_ir.proto中SchedInfoDef.exec_order添加[deprecated = true]标记,注释注明自 2026-07-15 起废弃,仅为兼容性保留。 CreateContiguousData接口变更:AscGraph和AscGraphImpl的CreateContiguousData方法新增size_t index参数替代原有的exec_order自动分配逻辑,内部直接使用传入的index设置AscDataIrAttrDef的索引。- 删除
exec_order相关方法: 移除AscGraph::SortByExecOrder()、AscGraph::CheckExecOrderValid()及其在AscGraphImpl中的实现,移除TopologicalSorting中按exec_order排序的逻辑。 - 代码生成与序列化清理:
generator.cc中的GenSchedInfo和StoreNodeFuncGenerator不再生成exec_order赋值代码;SerializeAttr/DeserializeAttr不再读写exec_order字段;调试输出(ascendc_ir_dump_utils.cc)不再打印exec_order。 - 测试用例全面清理: 所有测试文件中移除对
node.attr.sched.exec_order的显式赋值、exec_order计数器变量及相关递增逻辑;CreateContiguousData调用处统一补充index参数;删除ExecOrderIncreaseOk测试用例。


代码审查
The remaining references to exec_order in test snapshot files and an unrelated test file (test_ascir.cpp) are pre-existing and not affected by this diff. The cleanup is thorough.
Now let me write the closing summary.
审查总结
本次变更审查了全部 32 个文件,核心目标是废弃 exec_order 字段的处理逻辑,同时保留该字段以保证向后兼容性。
审查结果统计
- P2:1 个 — Python 测试文件中算子名称意外变更
- P3:1 个 — Proto 废弃注释中的日期问题
- P0/P1:0 个
各文件审查确认
| 文件 | 结论 |
|---|---|
autofuse/ascir/meta/ascir_utils.cpp |
无问题 — 仅移除 DebugStr 中的 exec_order 注释 |
autofuse/graph_metadef/graph/ascendc_ir/core/ascendc_ir.cc |
无问题 — 删除 SortByExecOrder、CheckExecOrderValid,修改 CreateContiguousData 签名,清理序列化/反序列化中的 exec_order 处理 |
autofuse/graph_metadef/graph/ascendc_ir/core/ascendc_ir_impl.h |
无问题 — 删除 SortByExecOrder 声明,更新 CreateContiguousData 签名 |
autofuse/graph_metadef/graph/ascendc_ir/generator/generator.cc |
无问题 — 移除代码生成模板中的 exec_order 赋值 |
autofuse/graph_metadef/graph/ascendc_ir/utils/ascendc_ir_dump_utils.cc |
无问题 — 移除 dump 输出中的 exec_order |
autofuse/graph_metadef/proto/af_ir.proto |
P3 — 废弃注释日期写为未来日期 2026-07-15 |
autofuse/inc/.../ascendc_ir.h |
无问题 — 更新 CreateContiguousData 签名,删除 SortByExecOrder/CheckExecOrderValid 声明 |
autofuse/inc/.../ascendc_ir_def.h |
无问题 — SchedInfo::exec_order 注释标记为废弃 |
autofuse/tests/st/ascir/code_dumper/code_dumper_unittest.cc |
无问题 — 移除 exec_order 赋值 |
autofuse/tests/st/att/testcase/scenario/add_layer_norm/test_add_layer_norm.cpp |
无问题 — 移除 exec_order 参数 |
autofuse/tests/st/att/testcase/scenario/concat/test_concat.cpp |
无问题 — 移除 exec_order 参数,更新 CreateContiguousData 调用 |
autofuse/tests/st/att/testcase/scenario/e2e_brc_buf/att_test_brc_buf.cpp |
无问题 — 移除 exec_order 参数 |
autofuse/tests/st/att/testcase/source_mirror/gen_model_info_content/stub_graph.cpp |
无问题 — 移除所有 exec_order 赋值和变量 |
autofuse/tests/st/att/testcase/source_mirror/gen_model_info_content/test_api_tiling_gen.cpp |
无问题 — 更新 CreateContiguousData 调用 |
autofuse/tests/st/att/testcase/source_mirror/gen_model_info_content/test_auto_fuse.cpp |
无问题 — 移除 exec_order 参数 |
autofuse/tests/st/att/testcase/source_mirror/gen_model_info_content/test_gen_model_info.cpp |
无问题 — 移除 exec_order 赋值 |
autofuse/tests/st/att/testcase/source_mirror/gen_model_info_content/test_schedule.cpp |
无问题 — 移除 exec_order 变量和赋值 |
autofuse/tests/st/att/utils/graph_construct_utils.cpp |
无问题 — 更新 CreateContiguousData 调用 |
autofuse/tests/st/codegen/ascir_tool/testcase/.../input_ascir.py |
P2 — Abs/Sum 算子名称从 'abs'/'sum' 变更为 "abs1"/"sum1" |
autofuse/tests/ut/ascir/code_dumper_unittest.cc |
无问题 — 移除 exec_order 赋值 |
autofuse/tests/ut/att/testcase/ascir/test_ascir_graph.cpp |
无问题 — 移除 exec_order 赋值和注释 |
autofuse/tests/ut/att/testcase/ascir/test_ascir_ops.cpp |
无问题 — 移除 ExecOrderIncreaseOk 测试用例 |
autofuse/tests/ut/att/testcase/gen_model_info/core/test_brc_buf_graph.cpp |
无问题 — 移除 exec_order 参数 |
autofuse/tests/ut/att/testcase/gen_model_info/core/test_concat.cpp |
无问题 — 移除 exec_order 参数,更新 CreateContiguousData 调用 |
autofuse/tests/ut/att/testcase/gen_model_info/core/test_fa_ascir_graph.cpp |
无问题 — 移除 exec_order 参数 |
autofuse/tests/ut/att/testcase/gen_model_info/core/test_gen_model_info.cpp |
无问题 — 更新 CreateContiguousData 调用 |
autofuse/tests/ut/att/testcase/gen_model_info/expr_gen/test_pipe_perf_expr.cpp |
无问题 — 更新 CreateContiguousData 调用 |
autofuse/tests/ut/att/testcase/gen_model_info/parser/test_ascend_graph_parser.cpp |
无问题 — 更新 CreateContiguousData 调用 |
autofuse/tests/ut/att/testcase/gen_model_info/reuse_group_utils/test_equivalent_graph_recongnizer.cpp |
无问题 — 更新 CreateContiguousData 调用 |
autofuse/tests/ut/att/utils/graph_construct_utils.cpp |
无问题 — 更新 CreateContiguousData 调用 |
autofuse/tests/v35/st/att/concat/test_concat.cpp |
无问题 — 更新 CreateContiguousData 调用 |
autofuse/tests/v35/ut/att/gen_model_info/api_perf_register/test_pipe_perf_expr_v2.cpp |
无问题 — 更新 CreateContiguousData 调用 |
总体风险评估
低风险。 本次变更是一个干净的废弃重构:彻底移除了 exec_order 的处理逻辑(方法、检验、序列化/反序列化、代码生成),同时保留了结构体成员和 proto 字段以保证向后兼容。所有调用方均已同步更新。发现的 P2 问题(Python 测试算子名称变更)需要确认是否为预期变更,P3 问题仅为注释日期修正,不影响功能。
⚠️ 已识别出整体风险,但无法提取行内评论,请参考整体评估。


/lgtm


/approve


Pull Request
描述
废弃 exec_order 字段,删除 exec_order 相关处理,保留 exec_order 字段以保证兼容性
变更类型
请选择本次引入的变更类型:
关联的Issue
如何测试
描述测试此变更的步骤和前提条件:
1.
2.
核对清单
其他信息
在此添加任何其他关于本次 PR 的说明。