Skip to content

Commit

Permalink
Merge pull request #13992 from keithc-ca/vmcp
Browse files Browse the repository at this point in the history
Omit non-applicable items from generated constant pool
  • Loading branch information
pshipton committed Dec 2, 2021
2 parents e7f1517 + f094169 commit eb2bd2a
Show file tree
Hide file tree
Showing 51 changed files with 662 additions and 792 deletions.

This file was deleted.

2 changes: 2 additions & 0 deletions runtime/compiler/env/J9KnownObjectTable.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -300,6 +300,7 @@ J9::KnownObjectTable::dumpObjectTo(TR::FILE *file, Index i, const char *fieldNam
int32_t offs = simpleNameOffset(className, len);
trfprintf(file, "%*s%s%sobj%d @ %p hash %8x %.*s", indent, "", fieldName, sep, i, *ref, hashCode, len-offs, className+offs);

#if defined(J9VM_OPT_METHOD_HANDLE)
if (len == 29 && !strncmp("java/lang/invoke/DirectHandle", className, 29))
{
J9Method *j9method = (J9Method*)J9VMJAVALANGINVOKEPRIMITIVEHANDLE_VMSLOT(j9fe->vmThread(), (J9Object*)(*ref));
Expand All @@ -310,6 +311,7 @@ J9::KnownObjectTable::dumpObjectTo(TR::FILE *file, Index i, const char *fieldNam
J9UTF8_LENGTH(className)-offs, utf8Data(className)+offs,
J9UTF8_LENGTH(methName), utf8Data(methName));
}
#endif /* defined(J9VM_OPT_METHOD_HANDLE) */

TR_VMFieldsInfo *fieldsInfo = fieldsInfoByIndex[i];
if (fieldsInfo)
Expand Down
13 changes: 13 additions & 0 deletions runtime/compiler/env/VMJ9.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4015,7 +4015,9 @@ TR_J9VMBase::canDereferenceAtCompileTimeWithFieldSymbol(TR::Symbol * fieldSymbol
{
case TR::Symbol::Java_lang_invoke_PrimitiveHandle_rawModifiers:
case TR::Symbol::Java_lang_invoke_PrimitiveHandle_defc:
#if defined(J9VM_OPT_METHOD_HANDLE)
case TR::Symbol::Java_lang_invoke_VarHandle_handleTable:
#endif /* defined(J9VM_OPT_METHOD_HANDLE) */
case TR::Symbol::Java_lang_invoke_MethodHandleImpl_LoopClauses_clauses:
{
return true;
Expand Down Expand Up @@ -5306,7 +5308,13 @@ TR_J9VMBase::getStringFieldByName(TR::Compilation * comp, TR::SymbolReference *
TR::Symbol::RecognizedField field = fieldRef->getSymbol()->getRecognizedField();

if (field == TR::Symbol::Java_lang_String_count)
{
#if JAVA_SPEC_VERSION == 8
pResult = (U_8*)string + J9VMJAVALANGSTRING_COUNT_OFFSET(vmThread());
#else /* JAVA_SPEC_VERSION == 8 */
return false;
#endif /* JAVA_SPEC_VERSION == 8 */
}
else if (field == TR::Symbol::Java_lang_String_hashCode)
{
if (J9VMJAVALANGSTRING_HASH(vmThread(), string) == 0)
Expand Down Expand Up @@ -5511,7 +5519,12 @@ TR_J9VMBase::getStringUTF8(uintptr_t objectPointer, char *buffer, intptr_t buffe
uint32_t
TR_J9VMBase::getVarHandleHandleTableOffset(TR::Compilation * comp)
{
#if defined(J9VM_OPT_METHOD_HANDLE) && (JAVA_SPEC_VERSION >= 11)
return uint32_t(J9VMJAVALANGINVOKEVARHANDLE_HANDLETABLE_OFFSET(vmThread()));
#else /* defined(J9VM_OPT_METHOD_HANDLE) && (JAVA_SPEC_VERSION >= 11) */
Assert_JIT_unreachable();
return 0;
#endif /* defined(J9VM_OPT_METHOD_HANDLE) && (JAVA_SPEC_VERSION >= 11) */
}

// set a 32 bit field that will be printed if the VM crashes
Expand Down
2 changes: 2 additions & 0 deletions runtime/compiler/optimizer/J9ValuePropagation.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1370,6 +1370,7 @@ J9::ValuePropagation::constrainRecognizedMethod(TR::Node *node)
}
break;
}
#if defined(J9VM_OPT_METHOD_HANDLE)
case TR::java_lang_invoke_PrimitiveHandle_initializeClassIfRequired:
{
TR::Node* mh = node->getArgument(0);
Expand Down Expand Up @@ -1414,6 +1415,7 @@ J9::ValuePropagation::constrainRecognizedMethod(TR::Node *node)
}
break;
}
#endif /* defined(J9VM_OPT_METHOD_HANDLE) */
case TR::java_lang_invoke_DirectHandle_nullCheckIfRequired:
{
TR::Node* mh = node->getArgument(0);
Expand Down
44 changes: 22 additions & 22 deletions runtime/gc_base/StringTable.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
#include "StringTable.hpp"
#include "VMHelpers.hpp"

/* the following is all ones except the least significant bit */
/* the following is all zeros except the least significant bit */
#define TYPE_UTF8 ((UDATA)1)

extern "C" {
Expand Down Expand Up @@ -784,17 +784,17 @@ j9gc_createJavaLangString(J9VMThread *vmThread, U_8 *data, UDATA length, UDATA s

if (compressStrings) {
if (isASCIIorLatin1) {
if (J2SE_VERSION(vm) >= J2SE_V11) {
J9VMJAVALANGSTRING_SET_CODER(vmThread, result, 0);
} else {
J9VMJAVALANGSTRING_SET_COUNT(vmThread, result, (I_32)unicodeLength);
}
#if JAVA_SPEC_VERSION >= 11
J9VMJAVALANGSTRING_SET_CODER(vmThread, result, 0);
#else /* JAVA_SPEC_VERSION >= 11 */
J9VMJAVALANGSTRING_SET_COUNT(vmThread, result, (I_32)unicodeLength);
#endif /* JAVA_SPEC_VERSION >= 11 */
} else {
if (J2SE_VERSION(vm) >= J2SE_V11) {
J9VMJAVALANGSTRING_SET_CODER(vmThread, result, 1);
} else {
J9VMJAVALANGSTRING_SET_COUNT(vmThread, result, (I_32)unicodeLength | (I_32)0x80000000);
}
#if JAVA_SPEC_VERSION >= 11
J9VMJAVALANGSTRING_SET_CODER(vmThread, result, 1);
#else /* JAVA_SPEC_VERSION >= 11 */
J9VMJAVALANGSTRING_SET_COUNT(vmThread, result, (I_32)unicodeLength | (I_32)0x80000000);
#endif /* JAVA_SPEC_VERSION >= 11 */

if (J9VMJAVALANGSTRING_COMPRESSIONFLAG(vmThread, stringClass) == 0) {
/*
Expand All @@ -817,11 +817,11 @@ j9gc_createJavaLangString(J9VMThread *vmThread, U_8 *data, UDATA length, UDATA s
}
}
} else {
if (J2SE_VERSION(vm) >= J2SE_V11) {
J9VMJAVALANGSTRING_SET_CODER(vmThread, result, 1);
} else {
J9VMJAVALANGSTRING_SET_COUNT(vmThread, result, (I_32)unicodeLength);
}
#if JAVA_SPEC_VERSION >= 11
J9VMJAVALANGSTRING_SET_CODER(vmThread, result, 1);
#else /* JAVA_SPEC_VERSION >= 11 */
J9VMJAVALANGSTRING_SET_COUNT(vmThread, result, (I_32)unicodeLength);
#endif /* JAVA_SPEC_VERSION >= 11 */
}

MM_AtomicOperations::writeBarrier();
Expand Down Expand Up @@ -905,19 +905,19 @@ setupCharArray(J9VMThread *vmThread, j9object_t sourceString, j9object_t newStri

J9VMJAVALANGSTRING_SET_VALUE(vmThread, newString, newChars);

if (J2SE_VERSION(vm) >= J2SE_V11) {
J9VMJAVALANGSTRING_SET_CODER(vmThread, newString, J9VMJAVALANGSTRING_CODER(vmThread, sourceString));
} else {
J9VMJAVALANGSTRING_SET_COUNT(vmThread, newString, J9VMJAVALANGSTRING_COUNT(vmThread, sourceString));
}
#if JAVA_SPEC_VERSION >= 11
J9VMJAVALANGSTRING_SET_CODER(vmThread, newString, J9VMJAVALANGSTRING_CODER(vmThread, sourceString));
#else /* JAVA_SPEC_VERSION >= 11 */
J9VMJAVALANGSTRING_SET_COUNT(vmThread, newString, J9VMJAVALANGSTRING_COUNT(vmThread, sourceString));
#endif /* JAVA_SPEC_VERSION >= 11 */

result = newString;
}

return result;
}

j9object_t
j9object_t
j9gc_internString(J9VMThread *vmThread, j9object_t sourceString)
{
J9JavaVM *vm = vmThread->javaVM;
Expand Down
Loading

0 comments on commit eb2bd2a

Please sign in to comment.