You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The list of recognized methods in the JIT compiler contains some entries for methods or classes that no longer exist in the Java class libraries, and likely is missing methods that have been introduced over the years in some of those classes as the implementation of the Java class libraries have changed.
Further, the JIT compiler contains special handling of recognized methods that takes advantage of properties of those implementations - for instance, recognizing methods that will not require ArrayStoreCHK operations. It's possible that some of that special handling is not appropriate in all versions of the Java or that the JIT does not take advantage of similar properties of some more recently introduced methods.
Other things to consider: How to ensure that the list of recognized methods doesn't get out of date? Products built on OpenJ9 source code might contain Java class libraries that are different from those that are part of OpenJ9 releases - for instance, java/util/Hashtable$HashEnumerator might still be in use in a product built on OpenJ9.
Investigation and clean up should probably be performed on a class-by-class basis. I will create an initial checklist here that can be updated and enhanced as issues are opened and classes investigated.
The list of recognized methods in the JIT compiler contains some entries for methods or classes that no longer exist in the Java class libraries, and likely is missing methods that have been introduced over the years in some of those classes as the implementation of the Java class libraries have changed.
As an example, the
class34
table contains an entry forjava/util/Hashtable$HashEnumerator
, but that class does not exist in OpenJ9's implementation of the Java class libraries - it instead uses a nested class namedjava/util/Hashtable$Enumerator
.Further, the JIT compiler contains special handling of recognized methods that takes advantage of properties of those implementations - for instance, recognizing methods that will not require
ArrayStoreCHK
operations. It's possible that some of that special handling is not appropriate in all versions of the Java or that the JIT does not take advantage of similar properties of some more recently introduced methods.Other things to consider: How to ensure that the list of recognized methods doesn't get out of date? Products built on OpenJ9 source code might contain Java class libraries that are different from those that are part of OpenJ9 releases - for instance,
java/util/Hashtable$HashEnumerator
might still be in use in a product built on OpenJ9.Investigation and clean up should probably be performed on a class-by-class basis. I will create an initial checklist here that can be updated and enhanced as issues are opened and classes investigated.
The text was updated successfully, but these errors were encountered: