Mercurial > hg > graal-compiler
changeset 11316:33ea8e2addac
Fix GraalCompilerTest deopt checks: need to re-aquire the profile after running the method since the MethodData may not be present before running it.
More precise comment for ProfileInfo.getNullSeen
author | Gilles Duboscq <duboscq@ssw.jku.at> |
---|---|
date | Fri, 16 Aug 2013 14:31:28 +0200 |
parents | dbcdae5ae741 |
children | 12fe444e68d2 |
files | graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/ProfilingInfo.java graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/GraalCompilerTest.java |
diffstat | 2 files changed, 5 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/ProfilingInfo.java Fri Aug 16 13:28:30 2013 +0200 +++ b/graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/ProfilingInfo.java Fri Aug 16 14:31:28 2013 +0200 @@ -87,7 +87,8 @@ TriState getExceptionSeen(int bci); /** - * Returns information if null was ever seen for the given BCI. + * Returns information if null was ever seen for the given BCI. This information is collected + * for the aastore, checkcast and instanceof bytecodes. * * @return {@link TriState#TRUE} if null was seen for the instruction, {@link TriState#FALSE} if * null was NOT seen, and {@link TriState#UNKNOWN} if this information was not recorded.
--- a/graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/GraalCompilerTest.java Fri Aug 16 13:28:30 2013 +0200 +++ b/graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/GraalCompilerTest.java Fri Aug 16 14:31:28 2013 +0200 @@ -363,11 +363,13 @@ protected Result executeActualCheckDeopt(Method method, Set<DeoptimizationReason> shouldNotDeopt, Object receiver, Object... args) { Map<DeoptimizationReason, Integer> deoptCounts = new EnumMap<>(DeoptimizationReason.class); - ProfilingInfo profile = runtime.lookupJavaMethod(method).getProfilingInfo(); + ResolvedJavaMethod javaMethod = runtime.lookupJavaMethod(method); + ProfilingInfo profile = javaMethod.getProfilingInfo(); for (DeoptimizationReason reason : shouldNotDeopt) { deoptCounts.put(reason, profile.getDeoptimizationCount(reason)); } Result actual = executeActual(method, receiver, args); + profile = javaMethod.getProfilingInfo(); // profile can change after execution for (DeoptimizationReason reason : shouldNotDeopt) { Assert.assertEquals((int) deoptCounts.get(reason), profile.getDeoptimizationCount(reason)); }