Skip to content

Commit

Permalink
Merge pull request #13858 from EricYangIBM/varHandleTable
Browse files Browse the repository at this point in the history
Disable VarHandleMethodType lookup table code for OJDK MH
  • Loading branch information
tajila committed Nov 19, 2021
2 parents 6aa5399 + f75956b commit a374105
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 @@ -489,7 +489,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 @@ -1114,7 +1117,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 @@ -1603,6 +1603,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 @@ -1619,6 +1620,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 @@ -5926,6 +5926,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 @@ -5962,6 +5963,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 @@ -333,8 +335,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 a374105

Please sign in to comment.