Allow Reference.refersTo to be inlined under AOT - #17568
Conversation
|
Irwin @dsouzai, may I ask you to review this change? |
c21131c to
b03ac95
Compare
|
Irwin @dsouzai, I've made the requested changes in commit b03ac952857a54bfc3169e631a9d866990949f81. This is ready for a re-review. Thanks! |
|
jenkins test sanity.functional all jdk17 |
|
I'll let the tests complete, but I believe we need to increment JITServer minor version since there could be a miscommunication between the client and the server. I've already spoken to Henry about this offline. |
The implementations of isGetImplInliningSupported() and isGetImplAndRefersToInliningSupported() in TR_J9SharedCacheVM and TR_J9SharedCacheServerVM return false unconditionally, preventing inlining of Reference.refersTo and Reference.getImpl under AOT compilation. This change removes the implementations to allow inlining to happen, with an additional test in TR_J9VM::inlineNativeCall of whether the 'referent' field's offset could not be retrieved - which can occur under AOT with no symbol validation manager. Signed-off-by: Henry Zongaro <zongaro@ca.ibm.com>
TR_J9SharedCacheServerVM no longer prevents Reference.refersTo and Reference.getImpl from being inlined under AOT compilation. Bump the MINOR_NUMBER to avoid any conflicts between the JITServer and client versions. Signed-off-by: Henry Zongaro <zongaro@ca.ibm.com>
02b794d to
53364de
Compare
|
Irwin @dsouzai, I've updated the MINOR_NUMBER as we discussed. Unfortunately, I had to resolve a merge conflict for the MINOR_NUMBER, so I've rebased and force pushed my commits with the latest versions. There were no other changes. There was an error in the aarch64 build that appeared to be unrelated to my changes, but the other tests were clean. I'll rerun the tests just to be safe. |
|
Jenkins test sanity.functional all jdk17 |
|
Irwin @dsouzai, would you like me to squash down the two commits, so that the change to the MINOR_NUMBER is actually with the change to which it applied. |
|
Nah I think it's fine as is, it's all still part of the same PR anyway. |
The implementations of
TR_J9SharedCacheVM::isGetImplInliningSupportedandTR_J9SharedCacheVM::isGetImplAndRefersToInliningSupportedreturn false unconditionally, preventing inlining ofjava/lang/ref/Reference.refersToandjava/lang/ref/Reference.getImplunder AOT compilation. This change removes the implementations of those methods inTR_J9SharedCacheVMto allow inlining to happen under AOT, with an additional test inTR_J9VM::inlineNativeCallof whether the 'referent' field's offset could not be retrieved - which can occur under AOT with no symbol validation manager.