Skip to content

Commit

Permalink
Update node uncommoning for offHeap
Browse files Browse the repository at this point in the history
Include dataAddr pointer check with ArrayRef check when unocmmoning
a node.

Previously, only aiadd or aladd could be used for array access but with
offHeap, dataAddr pointer nodes (aloadi) can also be used for array access.
Hence we must check for dataAddr pointer and ArrayRef when uncommoning a node.

Signed-off-by: Shubham Verma <shubhamv.sv@gmail.com>
  • Loading branch information
VermaSh committed Aug 8, 2024
1 parent 9ccff3c commit 08e97ee
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions compiler/il/OMRBlock.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1157,11 +1157,11 @@ static TR::SymbolReference * createSymRefForNode(TR::Compilation *comp, TR::Reso
symRef = comp->getSymRefTab()->createTemporary(methodSymbol, TR::Address, true, 0);
if (value->isNotCollected())
symRef->getSymbol()->setNotCollected();
else if (value->getOpCode().isArrayRef())
else if (value->getOpCode().isArrayRef() || value->isDataAddrPointer())
value->setIsInternalPointer(true);

TR::AutomaticSymbol *pinningArray = NULL;
if (value->getOpCode().isArrayRef())
if (value->getOpCode().isArrayRef() || value->isDataAddrPointer())
{
TR::Node *valueChild = value->getFirstChild();
if (valueChild->isInternalPointer() &&
Expand Down

0 comments on commit 08e97ee

Please sign in to comment.