Skip to content

Commit 9dd45f0

Browse files
committed
Merged PR 197313: Fixed some issues with the release/1.11 -> master merge
Fixed some issues with the release/1.11 -> master merge
1 parent 4f1cb77 commit 9dd45f0

File tree

1 file changed

+23
-1
lines changed

1 file changed

+23
-1
lines changed

lib/Backend/GlobOpt.cpp

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2786,12 +2786,18 @@ GlobOpt::IsNonNumericRegOpnd(IR::RegOpnd* opnd, bool inGlobOpt, bool* isSafeToTr
27862786
{
27872787
return true;
27882788
}
2789+
2790+
bool isSafeToTransfer = this->IsSafeToTransferInPrepass(opnd->m_sym, opndValueInfo);
2791+
if (isSafeToTransferInPrepass != nullptr)
2792+
{
2793+
*isSafeToTransferInPrepass = isSafeToTransfer;
2794+
}
27892795
if (this->prePassLoop->preservesNumberValue->Test(opnd->m_sym->m_id))
27902796
{
27912797
return false;
27922798
}
27932799

2794-
return !this->IsSafeToTransferInPrepass(opnd->m_sym, opndValueInfo);
2800+
return !isSafeToTransfer;
27952801
}
27962802

27972803
return true;
@@ -17393,11 +17399,27 @@ GlobOpt::EmitMemop(Loop * loop, LoopCount *loopCount, const MemOpEmitData* emitD
1739317399
}
1739417400
#endif
1739517401

17402+
Assert(noImplicitCallUsesToInsert->Count() == 0);
17403+
bool isLikelyJsArray;
17404+
if (emitData->stElemInstr->GetDst()->IsIndirOpnd())
17405+
{
17406+
baseOpnd = emitData->stElemInstr->GetDst()->AsIndirOpnd()->GetBaseOpnd();
17407+
isLikelyJsArray = baseOpnd->GetValueType().IsLikelyArrayOrObjectWithArray();
17408+
ProcessNoImplicitCallArrayUses(baseOpnd, baseOpnd->IsArrayRegOpnd() ? baseOpnd->AsArrayRegOpnd() : nullptr, emitData->stElemInstr, isLikelyJsArray, true);
17409+
}
1739617410
RemoveMemOpSrcInstr(memopInstr, emitData->stElemInstr, emitData->block);
1739717411
if (!isMemset)
1739817412
{
17413+
if (((MemCopyEmitData*)emitData)->ldElemInstr->GetSrc1()->IsIndirOpnd())
17414+
{
17415+
baseOpnd = ((MemCopyEmitData*)emitData)->ldElemInstr->GetSrc1()->AsIndirOpnd()->GetBaseOpnd();
17416+
isLikelyJsArray = baseOpnd->GetValueType().IsLikelyArrayOrObjectWithArray();
17417+
ProcessNoImplicitCallArrayUses(baseOpnd, baseOpnd->IsArrayRegOpnd() ? baseOpnd->AsArrayRegOpnd() : nullptr, emitData->stElemInstr, isLikelyJsArray, true);
17418+
}
1739917419
RemoveMemOpSrcInstr(memopInstr, ((MemCopyEmitData*)emitData)->ldElemInstr, emitData->block);
1740017420
}
17421+
InsertNoImplicitCallUses(memopInstr);
17422+
noImplicitCallUsesToInsert->Clear();
1740117423
}
1740217424

1740317425
bool

0 commit comments

Comments
 (0)