Skip to content

Commit 4dcd720

Browse files
committed
amend the code for CR.
1 parent 7caaa18 commit 4dcd720

File tree

1 file changed

+13
-9
lines changed

1 file changed

+13
-9
lines changed

src/coreclr/jit/lsra.cpp

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8155,8 +8155,6 @@ void LinearScan::handleOutgoingCriticalEdges(BasicBlock* block)
81558155
if (lastNode->OperIs(GT_JTRUE, GT_JCMP, GT_JTEST))
81568156
{
81578157
GenTree* op = lastNode->gtGetOp1();
8158-
8159-
Consume_Op2:
81608158
consumedRegs |= genRegMask(op->GetRegNum());
81618159

81628160
if (op->OperIs(GT_COPY))
@@ -8170,16 +8168,22 @@ void LinearScan::handleOutgoingCriticalEdges(BasicBlock* block)
81708168
terminatorNodeLclVarDsc = &compiler->lvaTable[lcl->GetLclNum()];
81718169
}
81728170

8173-
if (!lastNode->gtGetOp2()->isContainedIntOrIImmed() && (op != lastNode->gtGetOp2()))
8171+
if (lastNode->OperIs(GT_JCMP, GT_JTEST) && !lastNode->gtGetOp2()->isContained())
81748172
{
81758173
op = lastNode->gtGetOp2();
8176-
goto Consume_Op2;
8177-
}
8174+
consumedRegs |= genRegMask(op->GetRegNum());
81788175

8179-
#if !defined(TARGET_LOONGARCH64) && !defined(TARGET_RISCV64)
8180-
// For LoongArch64/RISC-V, the second operand of a JCMP can be in a register too.
8181-
assert(!lastNode->OperIs(GT_JCMP, GT_JTEST) || lastNode->gtGetOp2()->isContained());
8182-
#endif
8176+
if (op->OperIs(GT_COPY))
8177+
{
8178+
GenTree* srcOp = op->gtGetOp1();
8179+
consumedRegs |= genRegMask(srcOp->GetRegNum());
8180+
}
8181+
else if (op->IsLocal())
8182+
{
8183+
GenTreeLclVarCommon* lcl = op->AsLclVarCommon();
8184+
terminatorNodeLclVarDsc = &compiler->lvaTable[lcl->GetLclNum()];
8185+
}
8186+
}
81838187
}
81848188
}
81858189

0 commit comments

Comments
 (0)