Skip to content

Commit

Permalink
Disable storing dataAddr in temps
Browse files Browse the repository at this point in the history
Given issues when storing dataAddrPtr in temps and the dual purpose of
using that as the destination address (correct) and destination object
(incorrect) from some evaluators, the store of dataAddrPtr in temps
is disabled until its fixed (Issue: OMR #7560)

Signed-off-by: Abdulrahman Alattas <[email protected]>
  • Loading branch information
rmnattas committed Dec 6, 2024
1 parent 81b562d commit c7f89a0
Showing 1 changed file with 5 additions and 1 deletion.
6 changes: 5 additions & 1 deletion compiler/optimizer/InductionVariable.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3404,6 +3404,8 @@ bool TR_LoopStrider::reassociateAndHoistComputations(TR::Block *loopInvariantBlo
index
header_size/-header_size
OffHeap reassociation and hoisting is temporarily disabled
TODO enable storing dataAddrPtr in temps
off-heap mode:
aladd (internal pointer)
contiguousArrayDataAddrFieldSymbol (dataAddrPointer, internal pointer)
Expand Down Expand Up @@ -3462,6 +3464,7 @@ bool TR_LoopStrider::reassociateAndHoistComputations(TR::Block *loopInvariantBlo
//node->getSymbolReference()->getSymbol()->isAuto() &&
node->getSymbolReference()->getSymbol()->isAutoOrParm() &&
_neverWritten->get(node->getSymbolReference()->getReferenceNumber()))) &&
!originalNode->getFirstChild()->isDataAddrPointer() && // TODO enable storing dataAddrPtr in temps
(!_registersScarce || (originalNode->getReferenceCount() > 1)) &&
(comp()->getSymRefTab()->getNumInternalPointers() < maxInternalPointers()) &&
(!comp()->cg()->canBeAffectedByStoreTagStalls() ||
Expand Down Expand Up @@ -3672,7 +3675,8 @@ bool TR_LoopStrider::reassociateAndHoistComputations(TR::Block *loopInvariantBlo
* If first child of originalNode is not dataAddr pointer we have already
* hoisted the array aload, no need to do it again.
*/
if (TR::Compiler->om.isOffHeapAllocationEnabled() && originalNode && originalNode->getFirstChild()->isDataAddrPointer())
if (false && // TODO enable storing dataAddrPtr in temps
TR::Compiler->om.isOffHeapAllocationEnabled() && originalNode && originalNode->getFirstChild()->isDataAddrPointer())
{
if ((isInternalPointer &&
(comp()->getSymRefTab()->getNumInternalPointers() < maxInternalPointers())) &&
Expand Down

0 comments on commit c7f89a0

Please sign in to comment.