Mercurial > hg > graal-compiler
changeset 13118:d511d688b782
re-enabled TieredCompilation when GRAAL is defined by handling abstract types in profiles gathered by C1
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Fri, 22 Nov 2013 21:08:09 +0100 |
parents | 99dcb236aaad |
children | 124860fac470 |
files | graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/InliningUtil.java src/cpu/sparc/vm/c2_globals_sparc.hpp src/cpu/x86/vm/c2_globals_x86.hpp |
diffstat | 3 files changed, 9 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/InliningUtil.java Fri Nov 22 12:15:22 2013 +0100 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/InliningUtil.java Fri Nov 22 21:08:09 2013 +0100 @@ -26,6 +26,7 @@ import static com.oracle.graal.api.meta.DeoptimizationReason.*; import static com.oracle.graal.nodes.type.StampFactory.*; import static com.oracle.graal.phases.GraalOptions.*; +import static java.lang.reflect.Modifier.*; import java.lang.reflect.*; import java.util.*; @@ -434,6 +435,7 @@ super(invoke); this.concrete = concrete; this.type = type; + assert !isAbstract(type.getModifiers()) : type; } @Override @@ -1137,6 +1139,10 @@ } ResolvedJavaType type = ptypes[0].getType(); + if (isAbstract(type.getModifiers())) { + // In TieredCompilation mode, C1 can generate profiles containing abstract types + return null; + } ResolvedJavaMethod concrete = type.resolveMethod(targetMethod); if (!checkTargetConditions(data, replacements, invoke, concrete, optimisticOpts)) { return null; @@ -1207,6 +1213,9 @@ int index = concreteMethods.indexOf(concrete); if (index == -1) { notRecordedTypeProbability += type.getProbability(); + } else if (isAbstract(type.getType().getModifiers())) { + // In TieredCompilation mode, C1 can generate profiles containing abstract types + notRecordedTypeProbability += type.getProbability(); } else { usedTypes.add(type); typesToConcretes.add(index);
--- a/src/cpu/sparc/vm/c2_globals_sparc.hpp Fri Nov 22 12:15:22 2013 +0100 +++ b/src/cpu/sparc/vm/c2_globals_sparc.hpp Fri Nov 22 21:08:09 2013 +0100 @@ -44,12 +44,7 @@ #else define_pd_global(bool, ProfileInterpreter, true); #endif // CC_INTERP -// Disable TieredCompilation while profile data problems are not resolved - same thing in c2_globals_x86.hpp -#ifdef GRAAL -define_pd_global(bool, TieredCompilation, false); -#else define_pd_global(bool, TieredCompilation, trueInTiered); -#endif define_pd_global(intx, CompileThreshold, 10000); define_pd_global(intx, BackEdgeThreshold, 140000);
--- a/src/cpu/x86/vm/c2_globals_x86.hpp Fri Nov 22 12:15:22 2013 +0100 +++ b/src/cpu/x86/vm/c2_globals_x86.hpp Fri Nov 22 21:08:09 2013 +0100 @@ -45,12 +45,7 @@ #else define_pd_global(bool, ProfileInterpreter, true); #endif // CC_INTERP -// Disable TieredCompilation while profile data problems are not resolved - same thing in c2_globals_sparc.hpp -#ifdef GRAAL -define_pd_global(bool, TieredCompilation, false); -#else define_pd_global(bool, TieredCompilation, trueInTiered); -#endif define_pd_global(intx, CompileThreshold, 10000); define_pd_global(intx, BackEdgeThreshold, 100000);