comparison src/share/vm/graal/graalCodeInstaller.cpp @ 19796: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
comparison
equal deleted inserted replaced
19795:3362ba500371 19796:deab43a789ad
398 if (!assumption.is_null()) { 398 if (!assumption.is_null()) {
399 if (assumption->klass() == Assumptions_NoFinalizableSubclass::klass()) { 399 if (assumption->klass() == Assumptions_NoFinalizableSubclass::klass()) {
400 assumption_NoFinalizableSubclass(assumption); 400 assumption_NoFinalizableSubclass(assumption);
401 } else if (assumption->klass() == Assumptions_ConcreteSubtype::klass()) { 401 } else if (assumption->klass() == Assumptions_ConcreteSubtype::klass()) {
402 assumption_ConcreteSubtype(assumption); 402 assumption_ConcreteSubtype(assumption);
403 } else if (assumption->klass() == Assumptions_LeafType::klass()) {
404 assumption_LeafType(assumption);
403 } else if (assumption->klass() == Assumptions_ConcreteMethod::klass()) { 405 } else if (assumption->klass() == Assumptions_ConcreteMethod::klass()) {
404 assumption_ConcreteMethod(assumption); 406 assumption_ConcreteMethod(assumption);
405 } else if (assumption->klass() == Assumptions_CallSiteTargetValue::klass()) { 407 } else if (assumption->klass() == Assumptions_CallSiteTargetValue::klass()) {
406 assumption_CallSiteTargetValue(assumption); 408 assumption_CallSiteTargetValue(assumption);
407 } else { 409 } else {
656 Handle context_handle = Assumptions_ConcreteSubtype::context(assumption()); 658 Handle context_handle = Assumptions_ConcreteSubtype::context(assumption());
657 Handle subtype_handle = Assumptions_ConcreteSubtype::subtype(assumption()); 659 Handle subtype_handle = Assumptions_ConcreteSubtype::subtype(assumption());
658 Klass* context = java_lang_Class::as_Klass(HotSpotResolvedObjectTypeImpl::javaClass(context_handle)); 660 Klass* context = java_lang_Class::as_Klass(HotSpotResolvedObjectTypeImpl::javaClass(context_handle));
659 Klass* subtype = java_lang_Class::as_Klass(HotSpotResolvedObjectTypeImpl::javaClass(subtype_handle)); 661 Klass* subtype = java_lang_Class::as_Klass(HotSpotResolvedObjectTypeImpl::javaClass(subtype_handle));
660 662
661 if (context != subtype) { 663 assert(context->is_abstract(), "");
662 assert(context->is_abstract(), ""); 664 _dependencies->assert_abstract_with_unique_concrete_subtype(context, subtype);
663 _dependencies->assert_abstract_with_unique_concrete_subtype(context, subtype); 665 }
664 } 666
665 _dependencies->assert_leaf_type(subtype); 667 void CodeInstaller::assumption_LeafType(Handle assumption) {
668 Handle context_handle = Assumptions_LeafType::context(assumption());
669 Klass* context = java_lang_Class::as_Klass(HotSpotResolvedObjectTypeImpl::javaClass(context_handle));
670
671 _dependencies->assert_leaf_type(context);
666 } 672 }
667 673
668 void CodeInstaller::assumption_ConcreteMethod(Handle assumption) { 674 void CodeInstaller::assumption_ConcreteMethod(Handle assumption) {
669 Handle impl_handle = Assumptions_ConcreteMethod::impl(assumption()); 675 Handle impl_handle = Assumptions_ConcreteMethod::impl(assumption());
670 Handle context_handle = Assumptions_ConcreteMethod::context(assumption()); 676 Handle context_handle = Assumptions_ConcreteMethod::context(assumption());