review for 7057587: JSR 292 - crash with jruby in test/test_respond_to.rb

Tom Rodriguez tom.rodriguez at
Wed Jun 22 10:41:01 PDT 2011
40 lines changed: 6 ins; 0 del; 34 mod; 4861 unchg

7057587: JSR 292 - crash with jruby in test/test_respond_to.rb
Summary: don't skip receiver when GC'ing compiled invokedynamic callsites

When GC'ing at a call site during resolution the arguments to the call
have to be handled specially.  In most cases the implicit receiver to
method handle invoke is ignored but in this case it must be treated as
real so that it is properly GC'ed.  Tested with failing test from
report.  Also ran jck, regression tests and vm.mlvm tests.

I also included a fix to the inline level printing.  For method handle
invokes we don't want to count them against MaxInlineLevel and
previously this was done by adding a bias to the inline_depth.  This
screwed up the indenting making the inlining output unreadable.
Instead we should keep the depth count consistent and adjust the max
inline level for the subtree.  This is done by keeping that value in
the InlineTree.  inline_depth was renamed to inline_level to be
consistent with MaxInlineLevel.

More information about the hotspot-compiler-dev mailing list