Skip to content

Commit eed948b

Browse files
committed
Disable simplifying j9Class to j.l.Class to j9Class
Tree Simplification recognizes an indirect load that gets a java/lang/Class from a j9Class, and then gets the j9Class from that java/lang/Class can be simplified to refer to the original j9Class pointer itself. However, that introduces an l2a operation which causes problems for Code Generation's l2aEvaluators, as they assume that l2a operations are only used for compressed references. Until the two different kinds of conversions of integers to addresses can be distinguished from one another, this transformation in Tree Simplification will be disabled.
1 parent f6cc8cb commit eed948b

File tree

1 file changed

+5
-0
lines changed

1 file changed

+5
-0
lines changed

runtime/compiler/optimizer/J9Simplifier.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1203,8 +1203,13 @@ J9::Simplifier::simplifyIndirectLoadPatterns(TR::Node *node)
12031203

12041204
TR::SymbolReference *childSymref = firstChild->getSymbolReference();
12051205

1206+
// Temporarily disable simplification of j9class->java/lang/Class->j9class to j9class
1207+
// The potential introduction of an l2a is causing problems for l2aEvaluator,
1208+
// which makes the assumption that l2a is only used for compressed references
1209+
#if 0
12061210
if (symRefPairMatches(nodeSymref, childSymref, getSymRefTab()->findClassFromJavaLangClassSymbolRef(), getSymRefTab()->findJavaLangClassFromClassSymbolRef()))
12071211
fieldsAreComplementary = true;
1212+
#endif
12081213

12091214
if (symRefPairMatches(nodeSymref, childSymref, getSymRefTab()->findClassFromJavaLangClassAsPrimitiveSymbolRef(), getSymRefTab()->findJavaLangClassFromClassSymbolRef()))
12101215
fieldsAreComplementary = true;

0 commit comments

Comments
 (0)