Request for reviews (L): 7192406: JSR 292: C2 needs exact return type information for invokedynamic and invokehandle call sites

Christian Thalinger christian.thalinger at oracle.com
Fri Aug 24 16:07:57 PDT 2012


http://cr.openjdk.java.net/~twisti/7192406

7192406: JSR 292: C2 needs exact return type information for invokedynamic and invokehandle call sites
Reviewed-by:

When invokedynamic and invokehandle call sites are linked the target is a
method handle adapter (static method) with a type erased signature.  This 
also means the return type of the method is now java.lang.Object while in 
reality it's a more concrete type.

In certain situations with inlining this can cause type mismatches.

This also fixes a problem in constant pool cache where taking a lock might
result in problems on Solaris.

Additionally I changed GraphKit::compute_stack_effects to check if it was
called from LibraryCallKit instead of passing in a flag which is very
error prone. 

src/share/vm/c1/c1_GraphBuilder.cpp
src/share/vm/c1/c1_GraphBuilder.hpp
src/share/vm/ci/bcEscapeAnalyzer.cpp
src/share/vm/ci/ciEnv.cpp
src/share/vm/ci/ciEnv.hpp
src/share/vm/ci/ciMethod.cpp
src/share/vm/ci/ciStreams.cpp
src/share/vm/ci/ciStreams.hpp
src/share/vm/ci/ciTypeFlow.cpp
src/share/vm/interpreter/bytecodes.hpp
src/share/vm/oops/cpCacheOop.cpp
src/share/vm/opto/doCall.cpp
src/share/vm/opto/graphKit.cpp
src/share/vm/opto/graphKit.hpp
src/share/vm/opto/library_call.cpp
src/share/vm/opto/parse1.cpp



More information about the hotspot-compiler-dev mailing list