Mercurial > hg > graal-compiler
diff src/share/vm/graal/graalCodeInstaller.cpp @ 19801:deab43a789ad
Split LeafType off from ConcreteSubtype
author | Tom Rodriguez <tom.rodriguez@oracle.com> |
---|---|
date | Wed, 11 Mar 2015 17:45:21 -0700 |
parents | 6a3832494e24 |
children | c1f116cd4b67 |
line wrap: on
line diff
--- a/src/share/vm/graal/graalCodeInstaller.cpp Wed Mar 11 17:32:04 2015 -0700 +++ b/src/share/vm/graal/graalCodeInstaller.cpp Wed Mar 11 17:45:21 2015 -0700 @@ -400,6 +400,8 @@ assumption_NoFinalizableSubclass(assumption); } else if (assumption->klass() == Assumptions_ConcreteSubtype::klass()) { assumption_ConcreteSubtype(assumption); + } else if (assumption->klass() == Assumptions_LeafType::klass()) { + assumption_LeafType(assumption); } else if (assumption->klass() == Assumptions_ConcreteMethod::klass()) { assumption_ConcreteMethod(assumption); } else if (assumption->klass() == Assumptions_CallSiteTargetValue::klass()) { @@ -658,11 +660,15 @@ Klass* context = java_lang_Class::as_Klass(HotSpotResolvedObjectTypeImpl::javaClass(context_handle)); Klass* subtype = java_lang_Class::as_Klass(HotSpotResolvedObjectTypeImpl::javaClass(subtype_handle)); - if (context != subtype) { - assert(context->is_abstract(), ""); - _dependencies->assert_abstract_with_unique_concrete_subtype(context, subtype); - } - _dependencies->assert_leaf_type(subtype); + assert(context->is_abstract(), ""); + _dependencies->assert_abstract_with_unique_concrete_subtype(context, subtype); +} + +void CodeInstaller::assumption_LeafType(Handle assumption) { + Handle context_handle = Assumptions_LeafType::context(assumption()); + Klass* context = java_lang_Class::as_Klass(HotSpotResolvedObjectTypeImpl::javaClass(context_handle)); + + _dependencies->assert_leaf_type(context); } void CodeInstaller::assumption_ConcreteMethod(Handle assumption) {