基本上,假设我有3条说明:load $src
,store $dest
和modify
。
我想添加一个内在/指令foo $x
,就像
load $x
modify
store $x
加载和存储只修改一个无法直接访问的特殊寄存器。
我面临的问题是,出于某种原因,输出多个指令的表格中的Pattern<...>
无法编译,Pat<...>
因为指令不在; t直接使用彼此的结果(即特殊寄存器参数是隐含的),所以我不能(或者不知道如何)从它们创建单节点dag模式。
那么我该如何解决这个问题呢?我想过变成一个伪指令并将其降低到多个指令,但我不确定编译器是否能够优化两个连续的foo $x
进入
load $x
modify
modify
store $x
那样。
答案 0 :(得分:0)
通过在MyTargetDAGtoDAG的 case START_LOADING:
state = {
status: 'LOADING',
result: [],
};
break;
方法中添加特殊的内在处理,我设法做了我想要的事情。我已经用链式指令节点替换了给定节点。但这解决了代码生成的问题,我还没有找到优化问题的解决方案。