Как исправить утверждение «Недостаточно результатов» - PullRequest
0 голосов
/ 15 января 2019

Я получаю это утверждение при создании моего проекта 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

Спасибо.

1/21/2019: Быстрое обновление: если добавить выходной регистр, утверждение исчезнет.

def ASTI: F <0b100001, <strong>(без учета CPURegs: $ ra) , (ins i32imm: $ i10s), "ASTI $ i10s", [(set CPURegs: $ ra , (i32 (добавить (i32 SP), (i32 sext12To32Trunc2imm: $ i10s))))]> {

Почему эта инструкция не может быть без выходного регистра?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...