tmp0 is added into src in selection stage, and just ignored at context stage, it is redundant.
Signed-off-by: Guo, Yejun <yejun....@intel.com> --- backend/src/backend/gen_context.cpp | 2 -- backend/src/backend/gen_insn_selection.cpp | 54 +++++++++--------------------- 2 files changed, 15 insertions(+), 41 deletions(-) diff --git a/backend/src/backend/gen_context.cpp b/backend/src/backend/gen_context.cpp index c38b7af..186c8d9 100644 --- a/backend/src/backend/gen_context.cpp +++ b/backend/src/backend/gen_context.cpp @@ -3474,8 +3474,6 @@ namespace gbe const GenRegister tmp1 = ra->genReg(insn.dst(2)); GenRegister src; uint32_t srcNum = insn.srcNum; - if (insn.extra.continueFlag) - srcNum--; GenRegister addr = GenRegister::retype(tmp0, GEN_TYPE_UD); GenRegister data = GenRegister::retype(tmp1, GEN_TYPE_UD); diff --git a/backend/src/backend/gen_insn_selection.cpp b/backend/src/backend/gen_insn_selection.cpp index c14e0bc..1808c7b 100644 --- a/backend/src/backend/gen_insn_selection.cpp +++ b/backend/src/backend/gen_insn_selection.cpp @@ -2131,49 +2131,25 @@ namespace gbe void Selection::Opaque::PRINTF(GenRegister dst, uint8_t bti, GenRegister tmp0, GenRegister tmp1, GenRegister src[8], int srcNum, uint16_t num, bool isContinue, uint32_t totalSize) { - if (isContinue) { - SelectionInstruction *insn = this->appendInsn(SEL_OP_PRINTF, 3, srcNum + 1); - SelectionVector *vector = this->appendVector(); - - for (int i = 0; i < srcNum; i++) - insn->src(i) = src[i]; - - insn->src(srcNum) = tmp0; - - insn->dst(0) = dst; - insn->dst(1) = tmp0; - insn->dst(2) = tmp1; - - vector->regNum = 2; - vector->reg = &insn->dst(1); - vector->offsetID = 0; - vector->isSrc = 0; - - insn->extra.printfSize = static_cast<uint16_t>(totalSize); - insn->extra.continueFlag = isContinue; - insn->extra.printfBTI = bti; - insn->extra.printfNum = num; - } else { - SelectionInstruction *insn = this->appendInsn(SEL_OP_PRINTF, 3, srcNum); - SelectionVector *vector = this->appendVector(); + SelectionInstruction *insn = this->appendInsn(SEL_OP_PRINTF, 3, srcNum); + SelectionVector *vector = this->appendVector(); - for (int i = 0; i < srcNum; i++) - insn->src(i) = src[i]; + for (int i = 0; i < srcNum; i++) + insn->src(i) = src[i]; - insn->dst(0) = dst; - insn->dst(1) = tmp0; - insn->dst(2) = tmp1; + insn->dst(0) = dst; + insn->dst(1) = tmp0; + insn->dst(2) = tmp1; - vector->regNum = 2; - vector->reg = &insn->dst(1); - vector->offsetID = 0; - vector->isSrc = 0; + vector->regNum = 2; + vector->reg = &insn->dst(1); + vector->offsetID = 0; + vector->isSrc = 0; - insn->extra.printfSize = static_cast<uint16_t>(totalSize); - insn->extra.continueFlag = isContinue; - insn->extra.printfBTI = bti; - insn->extra.printfNum = num; - } + insn->extra.printfSize = static_cast<uint16_t>(totalSize); + insn->extra.continueFlag = isContinue; + insn->extra.printfBTI = bti; + insn->extra.printfNum = num; } void Selection::Opaque::WORKGROUP_OP(uint32_t wg_op, -- 1.9.1 _______________________________________________ Beignet mailing list Beignet@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/beignet