Mercurial > hg > graal-jvmci-8
comparison src/share/vm/classfile/vmSymbols.hpp @ 9126:bc26f978b0ce
HotSpotResolvedObjectType: implement hasFinalizeSubclass() correctly
don't use the (wrong) cached value, but ask the runtime on each request.
Fixes regression on xml.* benchmarks @ specjvm2008. The problem was:
After the constructor of Object was deoptimized due to an assumption violation,
it was recompiled again after some time. However, on recompilation, the value
of hasFinalizeSubclass for the class was not updated and it was compiled again
with a, now wrong, assumption, which then triggers deoptimization again.
This was repeated until it hit the recompilation limit (defined by
PerMethodRecompilationCutoff), and therefore only executed by the interpreter
from now on, causing the performance regression.
author | Bernhard Urban <bernhard.urban@jku.at> |
---|---|
date | Mon, 15 Apr 2013 19:54:58 +0200 |
parents | e0e85d78843b |
children | 0266549ff6e0 |
comparison
equal
deleted
inserted
replaced
9125:5b25562f8bd7 | 9126:bc26f978b0ce |
---|---|
358 template(createResolvedJavaMethod_name, "createResolvedJavaMethod") \ | 358 template(createResolvedJavaMethod_name, "createResolvedJavaMethod") \ |
359 template(createResolvedJavaMethod_signature, "(Lcom/oracle/graal/api/meta/JavaType;J)Lcom/oracle/graal/api/meta/ResolvedJavaMethod;") \ | 359 template(createResolvedJavaMethod_signature, "(Lcom/oracle/graal/api/meta/JavaType;J)Lcom/oracle/graal/api/meta/ResolvedJavaMethod;") \ |
360 template(createUnresolvedJavaType_name, "createUnresolvedJavaType") \ | 360 template(createUnresolvedJavaType_name, "createUnresolvedJavaType") \ |
361 template(createUnresolvedJavaType_signature, "(Ljava/lang/String;)Lcom/oracle/graal/api/meta/JavaType;") \ | 361 template(createUnresolvedJavaType_signature, "(Ljava/lang/String;)Lcom/oracle/graal/api/meta/JavaType;") \ |
362 template(createResolvedJavaType_name, "createResolvedJavaType") \ | 362 template(createResolvedJavaType_name, "createResolvedJavaType") \ |
363 template(createResolvedJavaType_signature, "(JLjava/lang/String;Ljava/lang/String;Ljava/lang/Class;ZI)Lcom/oracle/graal/api/meta/ResolvedJavaType;") \ | 363 template(createResolvedJavaType_signature, "(JLjava/lang/String;Ljava/lang/String;Ljava/lang/Class;I)Lcom/oracle/graal/api/meta/ResolvedJavaType;") \ |
364 template(createPrimitiveJavaType_name, "createPrimitiveJavaType") \ | 364 template(createPrimitiveJavaType_name, "createPrimitiveJavaType") \ |
365 template(createPrimitiveJavaType_signature, "(I)Lcom/oracle/graal/api/meta/JavaType;") \ | 365 template(createPrimitiveJavaType_signature, "(I)Lcom/oracle/graal/api/meta/JavaType;") \ |
366 template(createLocalImpl_name, "createLocalImpl") \ | 366 template(createLocalImpl_name, "createLocalImpl") \ |
367 template(createLocalImpl_signature, "(Ljava/lang/String;Ljava/lang/String;Lcom/oracle/graal/hotspot/meta/HotSpotResolvedObjectType;III)Lcom/oracle/graal/hotspot/debug/LocalImpl;") \ | 367 template(createLocalImpl_signature, "(Ljava/lang/String;Ljava/lang/String;Lcom/oracle/graal/hotspot/meta/HotSpotResolvedObjectType;III)Lcom/oracle/graal/hotspot/debug/LocalImpl;") \ |
368 template(createConstant_name, "createConstant") \ | 368 template(createConstant_name, "createConstant") \ |