review for 6385687: UseFastEmptyMethods/UseFastAccessorMethods considered harmful

Tom Rodriguez tom.rodriguez at
Wed Mar 30 16:46:44 PDT 2011

6385687: UseFastEmptyMethods/UseFastAccessorMethods considered harmful

While running various benchmarks, it was noticed that the use of
UseFastEmptyMethods/UseFastAccessorMethods can cause us to skip
compiling these methods because the fast versions don't have
invocation counters.  This can create severe performance anomalies if
the empty or accessor methods don't get inlined since we'll always
transition to the interpreter to execute this trivial code.  This
commonly occurs at call sites that are truly polymorphic.  We could
conceivably add invocation counter updates to these methods but that
simply makes them less fast and requires more changes.  So it's more
straightforward to simply disable them by default.  We could turn them
on for -Xint mode or we could delete the fast accessor machinery
completely.  It really only helps with raw interpreter performance.
Tested with jbb and grindermark.

More information about the hotspot-compiler-dev mailing list