[9] RFR (M): 8027827: Improve performance of catchException combinator

John Rose john.r.rose at oracle.com
Thu Feb 27 20:39:20 UTC 2014

On Feb 26, 2014, at 3:44 AM, Vladimir Ivanov <vladimir.x.ivanov at oracle.com> wrote:

>> Maybe use invokeWithArguments with target and catcher?  That at least is
>> a one-liner, and probably more efficient.
> Yes, that's a good idea! At least, it considerably simplifies the code.
> Updated webrev:
> http://cr.openjdk.java.net/~vlivanov/8027827/final/webrev.03/

Thumbs up.

Your use of invokeWithArguments in the unspecialized code is a good design pattern.  The semantics are clear in the original method.  This in turn gives a clear basis for specializing for each combination of argument arities and types.  Specialization should be done using low-level, high-leverage mechanisms like bytecode spinning or even JIT optimizations.

Put another way, if we have reasonable bytecode-generation intrinsics, feeding to good JIT optimizations, we don't need top-level specializations in the source code.  The need for those has always been a mark of weakness in the HotSpot implementation of MHs.  (Fredrik's JRockit implementation did it all in the JIT!)  We will continue to push down specializations to lower layers.

— John

More information about the core-libs-dev mailing list