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