当前位置: 首页 > news >正文

mlir clone

clone中设置新op的位置

auto copyKernelOp = cast<KernelOp>(transposeParentKernelOp->clone());// insert cloned op before kernelOp
kernelOp->getBlock()->getOperations().insert(Block::iterator(kernelOp), copykernelOp);
// insert cloned op after kernelOp
kernelOp->getBlock()->getOperations().insert(++Block::iterator(kernelOp), copykernelOp);// kernelOp->getBlock()的意思是获取kernelOp所属于的block
// kernelOp->getBlocks()的意思是获取kernelOp中所有的的block

clone中的IRMapping

IR 中 Value的映射替换.在clone的模块为:Operation/Region/Block时,如果被克隆的模块所使用的参数来源于外部,需要把原复制模块里的操作数value映射为新的从外面传入的value

IRMapping mapper;
mapper.map(oldArg, newArg); // 把 oldArg 对应到 newArgOperation *newOp = builder.clone(*oldOp, mapper);
IRMapping mapper;
// 如果 Region 有入口参数,要先建立映射 oldArg->newArg
for (auto [oldBbArg, newBbArg] : llvm::zip(oldBlock->getArguments(), newBlock->getArguments())) {mapper.map(oldBbArg, newBbArg);
}// 遍历 clone Block 内的 Ops
for (auto &op : oldBlock->getOperations()) {builder.clone(op, mapper);
}
http://www.dtcms.com/a/333098.html

相关文章:

  • 【C#补全计划】事件
  • 【C#】 GridControl与GridView、容器和视图
  • Spring事务 概念 配置 隔离级别 脏读幻读不可重复读 传播行为
  • pyinstaller-从安装到高级使用
  • align-content 设置侧轴上的子元素的排列方式(多行)
  • Git代码版本管理
  • OpenCV---getStructuringElement 结构元素获取
  • 设计心得——如何架构选型
  • ffmpeg 安装、配置与使用完全指南
  • 自学大语言模型之Transformer的Tokenizer
  • jenkins 自动部署
  • 开发Chrome/Edge插件基本流程
  • mysql中in 和 exists 区别
  • 从传感器到大模型:Jetson Thor + LLM.VLA + Holoscan 的边缘推理全链路实战
  • 基于改进Apriori算法的Web文档聚类方法研究(一)
  • 20250815给ubuntu22.04.5的系统缩小/home分区
  • Doris FE 应急恢复手册:六大经典故障场景与解决方案
  • WITRAN:基于改进的RNN时间序列预测模型
  • rent8 安装部署教程之 Windows
  • Effective C++ 条款43:学习处理模板化基类内的名称
  • 俄罗斯信封套娃问题-二维最长递增子序列
  • 【JavaEE】多线程 -- 线程安全
  • UI-TARS-Desktop 深度解析:下一代智能自动化桌面平台
  • Stagehand深度解析:从开源自动化工具到企业级RPA平台的演进之路
  • 神经网络 小土堆pytorch记录
  • nVidia Tesla P40使用anaconda本地重编译pytorch3d成功加载ComfyUI-3D-Pack
  • 基于多分类的工业异常声检测及应用
  • 微信小程序 拖拽签章
  • C语言基础00——基本补充(#define)
  • useEffect 和 useLayoutEffect 执行时机