Skip to content

Commit

Permalink
Disable transforming VFTLoad to loadaddr on Power for nonSVM AOT
Browse files Browse the repository at this point in the history
Due to missing external relocation record, disable transforming VFT load
of known object with fixed class to loadaddr on Power when compiling
relocatable code without Symbol Validation Manager.

Signed-off-by: Rahil Shah <rahil@ca.ibm.com>
  • Loading branch information
r30shah committed Aug 11, 2021
1 parent 1818cb1 commit ba6f751
Showing 1 changed file with 2 additions and 1 deletion.
3 changes: 2 additions & 1 deletion compiler/optimizer/VPHandlers.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -458,7 +458,8 @@ static bool tryFoldCompileTimeLoad(
TR_J9VMBase *fej9 = vp->comp()->fej9();
// Non SVM AOT can deal with transformed loadaddr of system class only while Symbol Validation Manager can handle any class.
// Skip the transformation under non SVM AOT when class is not loaded by bootstrap class loader.
if (vp->comp()->compileRelocatableCode() && !vp->comp()->getOption(TR_UseSymbolValidationManager) && fej9->getClassLoader(clazz) != fej9->getSystemClassLoader())
// TODO: Disabling tranformation on Power for non SVM AOT because it does not add external relocation record. Enable this once it is fixed.
if (vp->comp()->compileRelocatableCode() && !vp->comp()->getOption(TR_UseSymbolValidationManager) && (vp->comp()->target().cpu.isPower() || fej9->getClassLoader(clazz) != fej9->getSystemClassLoader()))
return false;
#endif
if (vp->trace())
Expand Down

0 comments on commit ba6f751

Please sign in to comment.