Mercurial > hg > graal-compiler
changeset 13166:107fee7fa3bb
replace code handling abstract (non-array) types in type profiles with assertions now that it should never occur
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Tue, 26 Nov 2013 00:09:17 +0100 |
parents | 0097301f34fa |
children | 787357a6de3e |
files | graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/JavaTypeProfile.java graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/InliningUtil.java |
diffstat | 2 files changed, 5 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/JavaTypeProfile.java Tue Nov 26 00:08:15 2013 +0100 +++ b/graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/JavaTypeProfile.java Tue Nov 26 00:09:17 2013 +0100 @@ -22,6 +22,8 @@ */ package com.oracle.graal.api.meta; +import static java.lang.reflect.Modifier.*; + import java.util.*; import com.oracle.graal.api.meta.JavaTypeProfile.ProfiledType; @@ -144,6 +146,7 @@ public ProfiledType(ResolvedJavaType item, double probability) { super(item, probability); + assert !isAbstract(item.getModifiers()) || item.isArray() : item; } /**
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/InliningUtil.java Tue Nov 26 00:08:15 2013 +0100 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/InliningUtil.java Tue Nov 26 00:09:17 2013 +0100 @@ -1139,10 +1139,7 @@ } ResolvedJavaType type = ptypes[0].getType(); - if (isAbstract(type.getModifiers())) { - // In TieredCompilation mode, C1 can generate profiles containing abstract types - return null; - } + assert !isAbstract(type.getModifiers()); ResolvedJavaMethod concrete = type.resolveMethod(targetMethod); if (!checkTargetConditions(data, replacements, invoke, concrete, optimisticOpts)) { return null; @@ -1213,10 +1210,8 @@ 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 { + assert !isAbstract(type.getType().getModifiers()); usedTypes.add(type); typesToConcretes.add(index); }