Skip to content

Commit

Permalink
Disable VarHandleMethodType lookup table code for OJDK MH
Browse files Browse the repository at this point in the history
J9RomClass.varHandleMethodTypeLookupTable is not used in the OJDK method
handle implementation as varhandles are treated as method handles and
use the invoke cache instead.

Closes: eclipse-openj9#11580
Signed-off-by: Eric Yang <eric.yang@ibm.com>
  • Loading branch information
EricYangIBM committed Nov 8, 2021
1 parent 1318614 commit f75956b
Show file tree
Hide file tree
Showing 21 changed files with 83 additions and 16 deletions.
2 changes: 2 additions & 0 deletions runtime/bcutil/ClassFileOracle.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -292,11 +292,13 @@ ClassFileOracle::ClassFileOracle(BufferManager *bufferManager, J9CfrClassFile *c
if (!constantPoolMap->isOK()) {
_buildResult = _constantPoolMap->getBuildResult();
} else {
#if defined(J9VM_OPT_METHOD_HANDLE)
/* computeConstantPoolMapAndSizes must complete successfully before calling findVarHandleMethodRefs */
_constantPoolMap->findVarHandleMethodRefs();
if (!constantPoolMap->isOK()) {
_buildResult = _constantPoolMap->getBuildResult();
}
#endif /* defined(J9VM_OPT_METHOD_HANDLE) */
}
}

Expand Down
9 changes: 6 additions & 3 deletions runtime/bcutil/ConstantPoolMap.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2001, 2020 IBM Corp. and others
* Copyright (c) 2001, 2021 IBM Corp. and others
*
* This program and the accompanying materials are made available under
* the terms of the Eclipse Public License 2.0 which accompanies this
Expand Down Expand Up @@ -52,9 +52,9 @@ ConstantPoolMap::ConstantPoolMap(BufferManager *bufferManager, ROMClassCreationC
_invokeCacheCount(0),
#else /* defined(J9VM_OPT_OPENJDK_METHODHANDLE) */
_methodTypeCount(0),
#endif /* defined(J9VM_OPT_OPENJDK_METHODHANDLE) */
_varHandleMethodTypeCount(0),
_varHandleMethodTypeLookupTable(NULL),
#endif /* defined(J9VM_OPT_OPENJDK_METHODHANDLE) */
_callSiteCount(0),
_ramConstantPoolCount(0),
_romConstantPoolCount(0),
Expand All @@ -70,7 +70,9 @@ ConstantPoolMap::~ConstantPoolMap()
_bufferManager->free(_constantPoolEntries);
_bufferManager->free(_romConstantPoolEntries);
_bufferManager->free(_romConstantPoolTypes);
#if defined(J9VM_OPT_METHOD_HANDLE)
j9mem_free_memory(_varHandleMethodTypeLookupTable);
#endif /* defined(J9VM_OPT_METHOD_HANDLE) */
}

void
Expand Down Expand Up @@ -323,6 +325,7 @@ ConstantPoolMap::computeConstantPoolMapAndSizes()
}
}

#if defined(J9VM_OPT_METHOD_HANDLE)
void
ConstantPoolMap::findVarHandleMethodRefs()
{
Expand Down Expand Up @@ -374,7 +377,7 @@ ConstantPoolMap::findVarHandleMethodRefs()
j9mem_free_memory(varHandleMethodTable);
}
}

#endif /* defined(J9VM_OPT_METHOD_HANDLE) */

void
ConstantPoolMap::constantPoolDo(ConstantPoolVisitor *visitor)
Expand Down
10 changes: 7 additions & 3 deletions runtime/bcutil/ConstantPoolMap.hpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2001, 2020 IBM Corp. and others
* Copyright (c) 2001, 2021 IBM Corp. and others
*
* This program and the accompanying materials are made available under
* the terms of the Eclipse Public License 2.0 which accompanies this
Expand Down Expand Up @@ -125,7 +125,9 @@ class ConstantPoolMap

void computeConstantPoolMapAndSizes();

#if defined(J9VM_OPT_METHOD_HANDLE)
void findVarHandleMethodRefs();
#endif /* defined(J9VM_OPT_METHOD_HANDLE) */

bool isOK() const { return OK == _buildResult; }
BuildResult getBuildResult() const { return _buildResult; }
Expand Down Expand Up @@ -167,10 +169,10 @@ class ConstantPoolMap
U_32 getInvokeCacheCount() const { return _invokeCacheCount; }
#else /* defined(J9VM_OPT_OPENJDK_METHODHANDLE) */
U_32 getMethodTypeCount() const { return _methodTypeCount; }
#endif /* defined(J9VM_OPT_OPENJDK_METHODHANDLE) */
U_32 getVarHandleMethodTypeCount() const { return _varHandleMethodTypeCount; }
U_32 getVarHandleMethodTypePaddedCount() const { return _varHandleMethodTypeCount + (_varHandleMethodTypeCount & 0x1); /* Rounding up to an even number */ }
U_16 *getVarHandleMethodTypeLookupTable() const { return _varHandleMethodTypeLookupTable; }
#endif /* defined(J9VM_OPT_OPENJDK_METHODHANDLE) */
U_32 getCallSiteCount() const { return _callSiteCount; }
U_16 getRAMConstantPoolCount() const { return _ramConstantPoolCount; }
U_16 getROMConstantPoolCount() const { return _romConstantPoolCount; }
Expand Down Expand Up @@ -260,7 +262,9 @@ class ConstantPoolMap
bool hasSpecialSplitTable() const { return _specialSplitEntryCount != 0; }

bool hasCallSites() const { return 0 != _callSiteCount; }
#if defined(J9VM_OPT_METHOD_HANDLE)
bool hasVarHandleMethodRefs() const { return 0 != _varHandleMethodTypeCount; }
#endif /* defined(J9VM_OPT_METHOD_HANDLE) */

void markConstantAsReferencedDoubleSlot(U_16 cfrCPIndex) { mark(cfrCPIndex); }
void markConstantAsUsedByLDC(U_8 cfrCPIndex) { _constantPoolEntries[cfrCPIndex].isUsedByLDC = true; }
Expand Down Expand Up @@ -364,9 +368,9 @@ class ConstantPoolMap
U_32 _invokeCacheCount;
#else /* defined(J9VM_OPT_OPENJDK_METHODHANDLE) */
U_32 _methodTypeCount;
#endif /* defined(J9VM_OPT_OPENJDK_METHODHANDLE) */
U_16 _varHandleMethodTypeCount;
U_16 *_varHandleMethodTypeLookupTable;
#endif /* defined(J9VM_OPT_OPENJDK_METHODHANDLE) */
U_32 _callSiteCount;
U_16 _ramConstantPoolCount;
U_16 _romConstantPoolCount;
Expand Down
10 changes: 8 additions & 2 deletions runtime/bcutil/ROMClassBuilder.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -479,7 +479,10 @@ ROMClassBuilder::getSizeInfo(ROMClassCreationContext *context, ROMClassWriter *r
ROMClassWriter::MARK_AND_COUNT_ONLY);
}
/* NOTE: the size of the VarHandle MethodType lookup table is already included in
* rcWithOutUTF8sSize; see ROMClassWriter::writeVarHandleMethodTypeLookupTable() */
* rcWithOutUTF8sSize; see ROMClassWriter::writeVarHandleMethodTypeLookupTable().
* VarHandleMethodTypeLookupTable is disabled for OpenJDK MethodHandles because
* it is not used.
*/
sizeInformation->rcWithOutUTF8sSize = mainAreaCursor.getCount();
sizeInformation->lineNumberSize = lineNumberCursor.getCount();
sizeInformation->variableInfoSize = variableInfoCursor.getCount();
Expand Down Expand Up @@ -1104,7 +1107,10 @@ ROMClassBuilder::finishPrepareAndLaydown(
ROMClassWriter::MARK_AND_COUNT_ONLY);

/* NOTE: the size of the VarHandle MethodType lookup table is already included in
* rcWithOutUTF8sSize; see ROMClassWriter::writeVarHandleMethodTypeLookupTable() */
* rcWithOutUTF8sSize; see ROMClassWriter::writeVarHandleMethodTypeLookupTable().
* VarHandleMethodTypeLookupTable is disabled for OpenJDK MethodHandles because
* it is not used.
*/
sizeInformation->rcWithOutUTF8sSize = mainAreaCursor.getCount();
sizeInformation->lineNumberSize = 0;
sizeInformation->variableInfoSize = 0;
Expand Down
12 changes: 11 additions & 1 deletion runtime/bcutil/ROMClassWriter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -315,7 +315,9 @@ ROMClassWriter::ROMClassWriter(BufferManager *bufferManager, ClassFileOracle *cl
_callSiteDataSRPKey(srpKeyProducer->generateKey()),
_staticSplitTableSRPKey(srpKeyProducer->generateKey()),
_specialSplitTableSRPKey(srpKeyProducer->generateKey()),
#if defined(J9VM_OPT_METHOD_HANDLE)
_varHandleMethodTypeLookupTableSRPKey(srpKeyProducer->generateKey()),
#endif /* defined(J9VM_OPT_METHOD_HANDLE) */
#if defined(J9VM_OPT_VALHALLA_VALUE_TYPES)
_injectedInterfaceInfoSRPKey(srpKeyProducer->generateKey()),
#endif /* J9VM_OPT_VALHALLA_VALUE_TYPES */
Expand Down Expand Up @@ -412,8 +414,8 @@ ROMClassWriter::writeROMClass(Cursor *cursor,
cursor->writeU32(_constantPoolMap->getInvokeCacheCount(), Cursor::GENERIC);
#else /* defined(J9VM_OPT_OPENJDK_METHODHANDLE) */
cursor->writeU32(_constantPoolMap->getMethodTypeCount(), Cursor::GENERIC);
#endif /* defined(J9VM_OPT_OPENJDK_METHODHANDLE) */
cursor->writeU32(_constantPoolMap->getVarHandleMethodTypeCount(), Cursor::GENERIC);
#endif /* defined(J9VM_OPT_OPENJDK_METHODHANDLE) */
cursor->writeU32(_classFileOracle->getBootstrapMethodCount(), Cursor::GENERIC);
cursor->writeU32(_constantPoolMap->getCallSiteCount(), Cursor::GENERIC);
cursor->writeSRP(_callSiteDataSRPKey, Cursor::SRP_TO_GENERIC);
Expand All @@ -423,7 +425,9 @@ ROMClassWriter::writeROMClass(Cursor *cursor,
cursor->writeU16(_constantPoolMap->getSpecialSplitEntryCount(), Cursor::GENERIC);
cursor->writeSRP(_staticSplitTableSRPKey, Cursor::SRP_TO_GENERIC);
cursor->writeSRP(_specialSplitTableSRPKey, Cursor::SRP_TO_GENERIC);
#if defined(J9VM_OPT_METHOD_HANDLE)
cursor->writeSRP(_varHandleMethodTypeLookupTableSRPKey, Cursor::SRP_TO_GENERIC);
#endif /* defined(J9VM_OPT_METHOD_HANDLE) */
cursor->padToAlignment(sizeof(U_64), Cursor::GENERIC);
}

Expand Down Expand Up @@ -451,7 +455,9 @@ ROMClassWriter::writeROMClass(Cursor *cursor,
#endif /* J9VM_OPT_VALHALLA_VALUE_TYPES */
writeOptionalInfo(cursor);
writeCallSiteData(cursor, markAndCountOnly);
#if defined(J9VM_OPT_METHOD_HANDLE)
writeVarHandleMethodTypeLookupTable(cursor, markAndCountOnly);
#endif /* defined(J9VM_OPT_METHOD_HANDLE) */
writeStaticSplitTable(cursor, markAndCountOnly);
writeSpecialSplitTable(cursor, markAndCountOnly);
/* aligned to U_64 required by the shared classes */
Expand Down Expand Up @@ -854,6 +860,7 @@ class ROMClassWriter::Helper :
}
}

#if defined(J9VM_OPT_METHOD_HANDLE)
void writeVarHandleMethodTypeLookupTable()
{
if (!_markAndCountOnly) {
Expand All @@ -876,6 +883,7 @@ class ROMClassWriter::Helper :
}
}
}
#endif /* defined(J9VM_OPT_METHOD_HANDLE) */

void writeBootstrapMethods()
{
Expand Down Expand Up @@ -1968,6 +1976,7 @@ ROMClassWriter::writeCallSiteData(Cursor *cursor, bool markAndCountOnly)
}
}

#if defined(J9VM_OPT_METHOD_HANDLE)
void
ROMClassWriter::writeVarHandleMethodTypeLookupTable(Cursor *cursor, bool markAndCountOnly)
{
Expand All @@ -1982,6 +1991,7 @@ ROMClassWriter::writeVarHandleMethodTypeLookupTable(Cursor *cursor, bool markAnd
#endif /* J9VM_OPT_VALHALLA_VALUE_TYPES */
}
}
#endif /* defined(J9VM_OPT_METHOD_HANDLE) */

void
ROMClassWriter::writeStaticSplitTable(Cursor *cursor, bool markAndCountOnly)
Expand Down
4 changes: 4 additions & 0 deletions runtime/bcutil/ROMClassWriter.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,9 @@ class ROMClassWriter
void writeStackMaps(Cursor *cursor);
void writeOptionalInfo(Cursor *cursor);
void writeCallSiteData(Cursor *cursor, bool markAndCountOnly);
#if defined(J9VM_OPT_METHOD_HANDLE)
void writeVarHandleMethodTypeLookupTable(Cursor *cursor, bool markAndCountOnly);
#endif /* defined(J9VM_OPT_METHOD_HANDLE) */
void writeStaticSplitTable(Cursor *cursor, bool markAndCountOnly);
void writeSpecialSplitTable(Cursor *cursor, bool markAndCountOnly);
void writeByteCodes(Cursor *cursor, ClassFileOracle::MethodIterator *methodIterator);
Expand Down Expand Up @@ -180,7 +182,9 @@ class ROMClassWriter
UDATA _annotationInfoClassSRPKey;
UDATA _typeAnnotationInfoSRPKey;
UDATA _callSiteDataSRPKey;
#if defined(J9VM_OPT_METHOD_HANDLE)
UDATA _varHandleMethodTypeLookupTableSRPKey;
#endif /* defined(J9VM_OPT_METHOD_HANDLE) */
UDATA _staticSplitTableSRPKey;
UDATA _specialSplitTableSRPKey;
UDATA _recordInfoSRPKey;
Expand Down
2 changes: 2 additions & 0 deletions runtime/compiler/compile/J9SymbolReferenceTable.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -573,6 +573,7 @@ J9::SymbolReferenceTable::findOrCreateMethodTypeTableEntrySymbol(TR::ResolvedMet
return symRef;
}

#if defined(J9VM_OPT_METHOD_HANDLE)
TR::SymbolReference *
J9::SymbolReferenceTable::findOrCreateVarHandleMethodTypeTableEntrySymbol(TR::ResolvedMethodSymbol * owningMethodSymbol, int32_t cpIndex)
{
Expand Down Expand Up @@ -604,6 +605,7 @@ J9::SymbolReferenceTable::findOrCreateVarHandleMethodTypeTableEntrySymbol(TR::Re
aliasBuilder.methodTypeTableEntrySymRefs().set(symRef->getReferenceNumber());
return symRef;
}
#endif /* defined(J9VM_OPT_METHOD_HANDLE) */


TR::SymbolReference *
Expand Down
2 changes: 2 additions & 0 deletions runtime/compiler/compile/J9SymbolReferenceTable.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,9 @@ class SymbolReferenceTable : public OMR::SymbolReferenceTableConnector
TR::SymbolReference * findOrCreateHandleMethodSymbol(TR::ResolvedMethodSymbol * owningMethodSymbol, int32_t cpIndex, char *signature);
TR::SymbolReference * findOrCreateCallSiteTableEntrySymbol(TR::ResolvedMethodSymbol * owningMethodSymbol, int32_t callSiteIndex);
TR::SymbolReference * findOrCreateMethodTypeTableEntrySymbol(TR::ResolvedMethodSymbol * owningMethodSymbol, int32_t cpIndex);
#if defined(J9VM_OPT_METHOD_HANDLE)
TR::SymbolReference * findOrCreateVarHandleMethodTypeTableEntrySymbol(TR::ResolvedMethodSymbol * owningMethodSymbol, int32_t cpIndex);
#endif /* defined(J9VM_OPT_METHOD_HANDLE) */
TR::SymbolReference * methodSymRefWithSignature(TR::SymbolReference *original, char *effectiveSignature, int32_t effectiveSignatureLength);
TR::SymbolReference * findOrCreateTypeCheckArrayStoreSymbolRef(TR::ResolvedMethodSymbol * owningMethodSymbol);
TR::SymbolReference * findOrCreateArrayClassRomPtrSymbolRef();
Expand Down
2 changes: 2 additions & 0 deletions runtime/compiler/control/JITClientCompilationThread.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1595,6 +1595,7 @@ handleServerMessage(JITServer::ClientStream *client, TR_J9VM *fe, JITServer::Mes
client->write(response, mirror->callSiteTableEntryAddress(callSiteIndex));
}
break;
#if defined(J9VM_OPT_METHOD_HANDLE)
case MessageType::ResolvedMethod_varHandleMethodTypeTableEntryAddress:
{
auto recv = client->getRecvData<TR_ResolvedJ9Method*, int32_t>();
Expand All @@ -1611,6 +1612,7 @@ handleServerMessage(JITServer::ClientStream *client, TR_J9VM *fe, JITServer::Mes
client->write(response, mirror->isUnresolvedVarHandleMethodTypeTableEntry(cpIndex));
}
break;
#endif /* defined(J9VM_OPT_METHOD_HANDLE) */
case MessageType::ResolvedMethod_getResolvedDynamicMethod:
{
auto recv = client->getRecvData<TR_ResolvedJ9Method *, int32_t>();
Expand Down
2 changes: 2 additions & 0 deletions runtime/compiler/env/j9method.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5917,6 +5917,7 @@ TR_ResolvedJ9Method::isUnresolvedCallSiteTableEntry(int32_t callSiteIndex)
return *(j9object_t*)callSiteTableEntryAddress(callSiteIndex) == NULL;
}

#if defined(J9VM_OPT_METHOD_HANDLE)
void *
TR_ResolvedJ9Method::varHandleMethodTypeTableEntryAddress(int32_t cpIndex)
{
Expand Down Expand Up @@ -5953,6 +5954,7 @@ TR_ResolvedJ9Method::isUnresolvedVarHandleMethodTypeTableEntry(int32_t cpIndex)
{
return *(j9object_t*)varHandleMethodTypeTableEntryAddress(cpIndex) == NULL;
}
#endif /* defined(J9VM_OPT_METHOD_HANDLE) */

void *
TR_ResolvedJ9Method::methodTypeTableEntryAddress(int32_t cpIndex)
Expand Down
2 changes: 2 additions & 0 deletions runtime/compiler/env/j9method.h
Original file line number Diff line number Diff line change
Expand Up @@ -412,8 +412,10 @@ class TR_ResolvedJ9Method : public TR_J9Method, public TR_ResolvedJ9MethodBase
virtual void * callSiteTableEntryAddress(int32_t callSiteIndex);
virtual bool isUnresolvedMethodTypeTableEntry(int32_t cpIndex);
virtual void * methodTypeTableEntryAddress(int32_t cpIndex);
#if defined(J9VM_OPT_METHOD_HANDLE)
virtual bool isUnresolvedVarHandleMethodTypeTableEntry(int32_t cpIndex);
virtual void * varHandleMethodTypeTableEntryAddress(int32_t cpIndex);
#endif /* defined(J9VM_OPT_METHOD_HANDLE) */

virtual bool fieldsAreSame(int32_t, TR_ResolvedMethod *, int32_t, bool &sigSame);
virtual bool staticsAreSame(int32_t, TR_ResolvedMethod *, int32_t, bool &sigSame);
Expand Down
2 changes: 2 additions & 0 deletions runtime/compiler/env/j9methodServer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1145,6 +1145,7 @@ TR_ResolvedJ9JITServerMethod::callSiteTableEntryAddress(int32_t callSiteIndex)
return std::get<0>(_stream->read<void*>());
}

#if defined(J9VM_OPT_METHOD_HANDLE)
bool
TR_ResolvedJ9JITServerMethod::isUnresolvedVarHandleMethodTypeTableEntry(int32_t cpIndex)
{
Expand All @@ -1158,6 +1159,7 @@ TR_ResolvedJ9JITServerMethod::varHandleMethodTypeTableEntryAddress(int32_t cpInd
_stream->write(JITServer::MessageType::ResolvedMethod_varHandleMethodTypeTableEntryAddress, _remoteMirror, cpIndex);
return std::get<0>(_stream->read<void*>());
}
#endif /* defined(J9VM_OPT_METHOD_HANDLE) */

TR_ResolvedMethod *
TR_ResolvedJ9JITServerMethod::getResolvedDynamicMethod(TR::Compilation * comp, I_32 callSiteIndex, bool * unresolvedInCP)
Expand Down
2 changes: 2 additions & 0 deletions runtime/compiler/env/j9methodServer.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -197,8 +197,10 @@ class TR_ResolvedJ9JITServerMethod : public TR_ResolvedJ9Method
virtual void * methodTypeTableEntryAddress(int32_t cpIndex) override;
virtual bool isUnresolvedCallSiteTableEntry(int32_t callSiteIndex) override;
virtual void * callSiteTableEntryAddress(int32_t callSiteIndex) override;
#if defined(J9VM_OPT_METHOD_HANDLE)
virtual bool isUnresolvedVarHandleMethodTypeTableEntry(int32_t cpIndex) override;
virtual void * varHandleMethodTypeTableEntryAddress(int32_t cpIndex) override;
#endif /* defined(J9VM_OPT_METHOD_HANDLE) */
virtual TR_ResolvedMethod * getResolvedDynamicMethod(TR::Compilation *, int32_t cpIndex, bool * unresolvedInCP) override;
virtual bool isSameMethod(TR_ResolvedMethod *) override;
virtual bool isInlineable(TR::Compilation *) override;
Expand Down
4 changes: 4 additions & 0 deletions runtime/compiler/net/MessageTypes.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -81,8 +81,10 @@ enum MessageType : uint16_t
ResolvedMethod_stringConstant,
ResolvedMethod_getResolvedVirtualMethod,
ResolvedMethod_getMultipleResolvedMethods,
#if defined(J9VM_OPT_METHOD_HANDLE)
ResolvedMethod_varHandleMethodTypeTableEntryAddress,
ResolvedMethod_isUnresolvedVarHandleMethodTypeTableEntry,
#endif /* defined(J9VM_OPT_METHOD_HANDLE) */
ResolvedMethod_getConstantDynamicTypeFromCP,
ResolvedMethod_isUnresolvedConstantDynamic,
ResolvedMethod_dynamicConstant,
Expand Down Expand Up @@ -332,8 +334,10 @@ static const char *messageNames[] =
"ResolvedMethod_stringConstant",
"ResolvedMethod_getResolvedVirtualMethod",
"ResolvedMethod_getMultipleResolvedMethods",
#if defined(J9VM_OPT_METHOD_HANDLE)
"ResolvedMethod_varHandleMethodTypeTableEntryAddress",
"ResolvedMethod_isUnresolvedVarHandleMethodTypeTableEntry",
#endif /* defined(J9VM_OPT_METHOD_HANDLE) */
"ResolvedMethod_getConstantDynamicTypeFromCP",
"ResolvedMethod_isUnresolvedConstantDynamic",
"ResolvedMethod_dynamicConstant",
Expand Down
2 changes: 2 additions & 0 deletions runtime/compiler/optimizer/VarHandleTransformer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,7 @@ TR::RecognizedMethod TR_VarHandleTransformer::getVarHandleAccessMethod(TR::Node
*/
int32_t TR_VarHandleTransformer::perform()
{
#if defined(J9VM_OPT_METHOD_HANDLE)
TR::ResolvedMethodSymbol *methodSymbol = comp()->getMethodSymbol();
TR_J9VMBase *fej9 = (TR_J9VMBase *)(comp()->fe());
for (TR::TreeTop * tt = methodSymbol->getFirstTreeTop(); tt != NULL; tt = tt->getNextTreeTop())
Expand Down Expand Up @@ -358,6 +359,7 @@ int32_t TR_VarHandleTransformer::perform()
}
}
}
#endif /* defined(J9VM_OPT_METHOD_HANDLE) */
return 0;
}

Expand Down
4 changes: 3 additions & 1 deletion runtime/gc_structs/ClassIterator.cpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@

/*******************************************************************************
* Copyright (c) 1991, 2019 IBM Corp. and others
* Copyright (c) 1991, 2021 IBM Corp. and others
*
* This program and the accompanying materials are made available under
* the terms of the Eclipse Public License 2.0 which accompanies this
Expand Down Expand Up @@ -94,12 +94,14 @@ GC_ClassIterator::nextSlot()
}
_state += 1;

#if defined(J9VM_OPT_METHOD_HANDLE)
case classiterator_state_varhandlemethodtypes:
slotPtr = _varHandlesMethodTypesIterator.nextSlot();
if (NULL != slotPtr) {
return slotPtr;
}
_state += 1;
#endif /* defined(J9VM_OPT_METHOD_HANDLE) */

case classiterator_state_valuetypes:
slotPtr = _valueTypesIterator.nextSlot();
Expand Down
Loading

0 comments on commit f75956b

Please sign in to comment.