如何解决“未提供足够结果”的断言

时间:2019-01-14 22:54:47

标签: llvm

在构建我的LLVM项目时,我得到了这个断言:

`Ops.size()> = NumSrcResults &&“没有提供足够的结果”'

这是导致它的指令:

def ASTI: F<0b100001,(outs),(ins i32imm:$i10s),"ASTI $i10s",[(set SP, (i32 (add (i32 SP), (i32 sext12To32Trunc2imm:$i10s))))] > {


        let isReMaterializable = 1;
        let mayLoad = 0;
        let mayStore = 0;
        let Defs = [SP];
        let Uses = [SP];
}

我已经盯着它看了一段时间,无法确定问题所在。应该将立即数添加到SP并将结果存储回SP中(即SP = SP + i10s)。当我打印Ops.size()和NumSrcResults时,我得到0和2

谢谢。

2019年1月2日:快速更新:如果添加输出寄存器,则断言消失。

def ASTI:F <0b100001,(输出CPURegs:$ ra),(在i32imm:$ i10s中),“ ASTI $ i10s”,[(设置 CPURegs:$ ra < / strong>,(i32(添加(i32 SP),(i32 sext12To32Trunc2imm:$ i10s))))]> {

为什么该指令不能没有输出寄存器?

0 个答案:

没有答案