Skip to content

Commit

Permalink
Remove VP optimization for obsolete TreeMap method
Browse files Browse the repository at this point in the history
This is in OpenJ9-specific code.  The `rbInsert` method is not present in
any TreeMap JDK implementation that is relevant to OpenJ9.

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
  • Loading branch information
0xdaryl committed Dec 2, 2021
1 parent 8d10f06 commit 24984c0
Showing 1 changed file with 0 additions and 82 deletions.
82 changes: 0 additions & 82 deletions compiler/optimizer/VPHandlers.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5659,88 +5659,6 @@ TR::Node *constrainCall(OMR::ValuePropagation *vp, TR::Node *node)
{
vp->addGlobalConstraint(node, TR::VPIntRange::create(vp, 0, 64));
}
else if (vp->cg()->getSupportsNewObjectAlignment() &&
symbol->getRecognizedMethod() == TR::java_util_TreeMap_rbInsert)
{
TR_ASSERT(node->getNumChildren()==2, "call to TreeMap.rbInsert should have only 2 children");
TR::Node *valueChild = node->getSecondChild();
TR::Node *definitionNode = NULL;
if (valueChild->getOpCodeValue() == TR::aload)
{
TR_UseDefInfo *useDefInfo = vp->_useDefInfo;
if (useDefInfo)
{
uint16_t useIndex = valueChild->getUseDefIndex();
if (useDefInfo->isUseIndex(useIndex))
{
TR_UseDefInfo::BitVector defs(vp->comp()->allocator());
if (useDefInfo->getUseDef(defs, useIndex))
{
TR_UseDefInfo::BitVector::Cursor cursor(defs);
for (cursor.SetToFirstOne(); cursor.Valid(); cursor.SetToNextOne())
{
int32_t defIndex = cursor;

if (defIndex < useDefInfo->getFirstRealDefIndex())
continue;

TR::TreeTop *defTree = useDefInfo->getTreeTop(defIndex);
TR::Node *defNode = defTree->getNode();

if (defNode && (defNode->getOpCodeValue() == TR::astore))
{
TR::Node *defChild = defNode->getFirstChild();
if (!defChild) continue;
if (defChild->getOpCodeValue() == TR::New)
{
definitionNode = defChild;
break;
}
else if (defChild->getOpCodeValue() == TR::aload)
{
uint16_t useIndexC = defChild->getUseDefIndex();
if (useDefInfo->isUseIndex(useIndexC))
{
TR_UseDefInfo::BitVector defsC(vp->comp()->allocator());
if (useDefInfo->getUseDef(defsC, useIndexC))
{
TR_UseDefInfo::BitVector::Cursor cursorC(defsC);
for (cursorC.SetToFirstOne(); cursorC.Valid(); cursorC.SetToNextOne())
{
int32_t defIndexC = cursorC;

if (defIndexC < useDefInfo->getFirstRealDefIndex())
continue;

TR::TreeTop *defTreeC = useDefInfo->getTreeTop(defIndexC);
TR::Node *defNodeC = defTreeC->getNode();

if (defNodeC && (defNodeC->getOpCodeValue() == TR::astore))
{
TR::Node *defChildC = defNodeC->getFirstChild();
if (defChildC && defChildC->getOpCodeValue() == TR::New)
{
definitionNode = defChildC;
break;
}
}
}
}
}
}
}
if (definitionNode)
break;
}
}
}
}
}
if (definitionNode)
{
definitionNode->setAlignTLHAlloc(true);
}
}
else if (callIsDirect &&
//symbol->isNative() &&
(symbol->getRecognizedMethod() == TR::java_lang_J9VMInternals_identityHashCode))
Expand Down

0 comments on commit 24984c0

Please sign in to comment.