RFR(S): 8027631: "unexpected profiling mismatch" error with new type profiling
vladimir.kozlov at oracle.com
Wed Nov 6 11:05:47 PST 2013
Changes looks fine.
Add -XX:+IgnoreUnrecognizedVMOptions to test's flags since Client VM may
not recognise tiered flags.
On 11/6/13 8:53 AM, Roland Westrelin wrote:
> The c1 profile collection code relies on the signature of the callee to figure out whether there’s a single possible class for an argument (to then not emit code that deal with conflicting profiles). The problem is that at a method handle invoke, a single call site can call different methods with different signature. So using the callee signature is not correct even though it can still be useful because it provides information about the types of arguments/return value. This change uses the signature from the call site to decide whether a single class is possible and the signature of the callee to improve the type of the arguments/return value more. The test case revealed another problem with profiling: profiling of arguments at a method handle call should skip over the first argument if the call is to a static method from a virtual method handle method because it’s not an argument at the call.
More information about the hotspot-compiler-dev